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

Nathan Pierson 의 주석 에서 지적했듯이 Clang은 정확하며 코드 형식이 잘못되었습니다. 현재 작업 초안 (C ++ 20 포함)에 따르면 dcl.constexpr # 3 은 다음과 같이 말합니다.

constexpr 함수의 정의는 다음 요구 사항을 충족해야합니다.

...

그 기능 본체는

...

식별자 라벨,

...

...