Убедить комитет не вводить новое ключевое слово constexpr!

neondev9
neondev9

Предлагаю выбрать какое-либо альтернативное ключевое слово для подобных выражений, будь-то staticexpr или что-либо более точное. Но слово constexpr! однозначно не стоит вводить, поскольку оно: 

- сбивает с толку;

- максимально идентично другому ключевому слову;

- содержит в себе восклицательный знак, что абсолютно противоречит стилю именования ключевых слов в С++.

Стоит заметить, что новое ключевое слово должно содержать -expr суффикс, и таким образом у нас будет семейство: constexpr, reflexpr, staticexpr (как вариант, но нужно что-то получше)

8
рейтинг
в разработке
6 комментариев
Игорь Шаповал

Я думаю не нужно добавлять новое ключевое слово или изменять.
На много лучше будет добавить атрибут, который будет используется
вместе с constexpr. 
Например, [[static_only]] или [[constexpr_only]].
Он будет указывать, что вычисление будет выполняться
только во время компиляции.
Зоопарк в виде constexpr, constexpr! или staticexpr мне кажется через чур.

[[static_only]]
constexpr int sum(int a, int b) {
   return a + b;
}



Игорь Шаповал
Обновлено 
neondev9

согласен с вашими словами. Но в идеале это всё нужно было определить сразу, в 11-ом стандарте когда только вводили constexpr и тогда сразу чётко определить ключевые слова для обоих случаев.

neondev9
Обновлено 
Саша Зайцев

Игорь Шаповал, кстати мне тоже идея с атрибутом нравится.

Саша Зайцев
yndx-antoshkka

Пока подлил масла в огонь, и передал ваши коментарии (из этой темы и из https://stdcpp.ru/proposals/37161dcc-eeaf-4d8d-8556-b3f7a4e64954) в приватные обсуждения ISO.

Многим новое слово constexpr! не нравится. Пока люди перебирают варианты для замены.

yndx-antoshkka
neondev9

есть какие-то новости? 

neondev9
Обновлено 
WPMGPRoSToTeMa

> содержит в себе восклицательный знак, что абсолютно противоречит стилю именования ключевых слов в С++.

Ну, кстати, нечто подобное уже есть - sizeof...

WPMGPRoSToTeMa
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения