Не принимать P1073R1 в текущем виде (constexpr! выражения, которые вычисляются _только_ на этапе компиляции)

Amomum
Amomum

В существующем виде в С++ нет ни одной пары ключевых слов, которые бы отличались всего одним символом. И нет ключевых слов, которые включают в себя спецсимволы (в том числе !).

Отличие между constexpr и constexpr! не бросается в глаза, что может привести к путанице. К тому же constexpr! будет еще тяжелее произносить вслух или проговаривать про себя.
Как это вообще проговорить - "констэкспр восклицательный знак"? "Констэкспр банг"? "Констэкспр экскламейшн марк"?

Гуглить "constexpr!" тоже будет очень тяжело, большинство поисковых систем фильтрует спецсимволы.

Считаю, что необходимо новое ключевое слово (compilet? compiletime?) или более значительная модификация слова "constexpr" (strict_constexpr? constexpr_only?), чтобы устранить вышеописанные проблемы.

20
рейтинг
есть аналогичное предложение
7 комментариев
Андрей Руссков

токен constexpr сам по себе длинный, для его задач хорошо бы подошло занятое слово static. Какой-нибудь force_constexpr был бы слишком непечатным

Андрей Руссков
nenomius

> Как это вообще проговорить - "констэкспр восклицательный знак"?

вот так: https://i.imgflip.com/2dhylk.jpg

nenomius
ZzZombo

Предлагаю использовать `comp[ile]time`. Согласен с возражениями полностью.

ZzZombo
michail.vms

Поддерживаю и, как где-то уже писали, лучше добавить просто атрибуты к constexpr.

michail.vms
Yauheni Akhotnikau

Может быть constexpr и constexpr<weak> для старого поведения constexpr. И constexpr<strong> для нового, когда вычисление должно быть только в compile-time. Ну или какие-то другие значения в уголовых скобках, но применить именно template-подобный синтаксис как максимально знакомый для С++ников.

Например, constexpr<compiletime, runtime> -- можно вычислять и там, и там. А constexpr<compiletime> -- только во время компиляции.

Yauheni Akhotnikau
Dmitry Volosnykh

Может static_constexpr по аналогии с static_assert?

Dmitry Volosnykh
Обновлено 
yndx-antoshkka

Это предложение дублирует https://stdcpp.ru/proposals/b2170aeb-211c-44be-bcf7-d1b510830a8c

Предлагаю дальнейшее обссуждение проводить в нём.

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