Может ли функция constexpr содержать метку?
Nov 16 2020
Эта программа :
constexpr void f() { x: ; }
скомпилирован gcc, но clang говорит:
error: statement not allowed in constexpr function
Так действителен ли этот код?
Ответы
7 cigien Nov 16 2020 at 11:35
Как указано в комментарии Натана Пирсона , Clang правильный, а код плохо сформирован. Согласно текущему рабочему проекту (который включает C ++ 20), dcl.constexpr # 3 говорит:
Определение функции constexpr должно удовлетворять следующим требованиям:
...
его функциональное тело не должно включать
...
метка идентификатора,
...
...