식별자: 열거형의 전달 선언은 단순 식별자만 사용할 수 있습니다.
C++ 표준에서는 정규화된 ID를 사용하여 불투명 열거형을 선언할 수 없습니다. 불투명 열거형 선언은 이름과 기본 형식을 지정하지만 열거자 또는 해당 값은 나열하지 않습니다.
다음 예제에서는 C7742를 생성합니다.
// C7742.cpp
class MyClass
{
public:
enum MyEnum
{
e1,
e2
};
};
enum MyClass::MyEnum; // C7742
이 오류를 해결하려면 프로그램에 아무것도 추가하지 않으므로 불투명 열거형 선언을 제거합니다.
그러나 정규화된 ID를 사용하여 열거형을 정의할 수 있습니다. 예를 들어:
struct S
{
enum E : int;
};
enum S::E : int { e1, e2, e3 };