синтаксическую поддержку - даже "вызываемые" атрибуты и собственные пространства имен под них завезли. С самими же атрибутами все очень печально пока что. Это такой tease (да-да, когда-нибудь это все будет использоваться, но ты до этого момента не доживешь)? Потому что для реализации кастомных атрибутов потребуется мощная рефлексия и программирование компиляторов далеко за рамками классических шаблонов (в сторону пользовательских атрибутов кивают пространства имен, хотя на данном этапе они скорее для компиляторов). А сам стандарт что-то не особо торопится этим всем функционалом пользоваться. Зачем нужно было заморачиваться теряя и так (как можно видеть) драгоценное время на функционал, который даже близко в полной мере не используется и использоваться не может, по сути?
>> Зачем нужно было заморачиваться теряя и так (как можно видеть) драгоценное время на функционал? Вы ошибочно считаете, что сэкономив человеко-часы на одной фиче, удастся быстрее закончить другую, более важную Кроме того, эта фича так или иначе будет востребована в будущем и если под неё сейчас есть юзкейсы (пусть, и не частые), то нет смысла изобретать для них костыли
Вы обладаете каким-то подробным знанием того, как именно в стандарт въезжали атрибуты, какие группы в этом процессе были задействованы и чем бы они занимались в противном случае?
Проблема в том, что ответ на последний вопрос никто не знает, именно поэтому ни у вас, ни у меня нет оснований полагать, что участники разработки стандарта, занимавшиеся аттрибутами, потребуй мы ими не заниматься, пошли бы разрабатывать более полезные фичи, а не играть в компьютерные игры или пить алкоголь Более того, я склонен ценить полезный вклад каждого из участников и было бы глупо требовать от сообщества (а это именно сообщество, а не организация, чем либо обязанная нам) уделять время вещам, ценным именно для меня, не вкладывая в это собственное время и силы
Вы абсолютно правы по поводу отсутствия оснований полагать. Именно поэтому я не начал свои сообщения с фразы "Вы ошибочно полагаете". И да, стандарт - это обалдеть какое несообщество. Там тонны коммерческих подвязок и корпоративных интересов (хватит одного того, что они вообще-то продукт за деньги выпускают, с этой ТЗ к дистрибьютеру (коим является сама ISO, емнип) даже ЗоЗПП применим). Да и не требовал я от них ничего вроде как нигде, а лишь полюбопытствовал насчет соображений о стоящих за теми или иными их действиями решениях.
Собственно, я пытался донести, что зачастую за теми или иными решениями стоит не строгий план по реализацию конкретных фич, написанный на столетие вперёд, а желание сообщества/вендоров заниматься той или иной фичей и принципиальная возможность её добавления Просто учитывайте, что для некоторых это альтернативный способ расслабиться и решить собственные проблемы, а не прямая обязанность В случае с атрибутами — их возможно было реализовать, а также, после их реализации в стандарте они, во-первых, смогут быть основой для будущих частных механизмов интроспекции, во-вторых, они могут быть использованы для некоторых компиляторо-зависимых вещей (noreturn, deprecated, fallthrough, nodiscard...), в которых, очевидно, сообщество было заинтересовано и которые бы в противном случае потребовали ad-hoc решений О мотивации тех или иных решений можно почитать в мейлинг-листе, а также, некоторые подробности на GitHub, где иногда можно встретить результаты опросов по отдельным идеям или предложениям
Я Вас понял, благодарю за ответ.
Собственно, обоснования многих принятых в стандарт решений можно поискать на этой странице, там есть ссылки на соответствующие предложения, обычно сопровождающиеся мотивацией. Например, вот бумага по атрибутам: In the pre-Oxford mailing, n2224 [n2224] makes a case for extensible syntax without overloading the keyword space. It references a large number of existing C++0x proposals that would benefit from such a proposal. This paper will examine the extensible syntax mechanism through the authors’ experience with its implementation in an existing C++ compiler. Если проследовать по ссылке, то можно увидеть мотивацию необходимости такого механизма: The evolution of C++ faces a serious problem selecting new keywords. This problem is confronted directly in Beman Dawes paper N2105, where the risk of collision with existing users' names clearly restricts our ability to select clear, descriptive keywords in the future
N2224: Seeking a Syntax for Attributes in C++09 (by Alisdair Meredith) (2007-03-12)
Ofee, прост жжёшь глаголом, молоток!
Обсуждают сегодня