Re[2]: std::is_constant_evaluated()
От: Videoman Россия https://hts.tv/
Дата: 13.04.20 17:34
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Требуется же поддержка в компиляторе. Например, через __builtin_is_constant_evaluated как в gcc и clang.

С одной стороны я догадывался, а с другой эта фича задекларирована как расширение библиотеки. По-этому была надежда, вдруг это можно с помощью шаблонной магии разрулить и я что-то упускаю.

W>Пока только дать программисту две функции и попросить самому выбрать нужную:

W>
W>constexpr int constexpr_add(int a, int b);

W>int runtime_add(int a, int b);
W>

К сожалению не получается, т.к. у меня может быть куча вложенных constexpr-методов или конструкторов и где-то внутри вот такой вот constexpr_add/runtime_add. Т.е. придется дублировать разные методы, а главное классы выше по иерархии, и так как методы с constexpr и без нельзя перегрузить, код перестанет компилироваться одно с другим.
Отредактировано 13.04.2020 17:46 Videoman . Предыдущая версия . Еще …
Отредактировано 13.04.2020 17:45 Videoman . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.