Является ли constexpr
индикатором для компилятора или он управляет поведением?
Ниже приведен пример:
template<typename T>
std::size_t constexpr getID() { return typeid(T).hash_code(); }
hash_code
- постоянная времени выполнения, но этот фрагмент компилируется, даже если оценка времени компиляции запрашивается с помощью constexpr
. Только после использования возвращаемого значения, когда ожидается постоянная времени компиляции, заметим, что этот не используется в качестве функции constexpr.
Итак, constexpr
"подсказка" (как и ключевое слово inline
) или "запрос привязки" к компилятору?