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