컴파일러 오류 C2477

'member': 정적 데이터 멤버는 파생 클래스를 통해 초기화할 수 없습니다.

템플릿 클래스의 정적 데이터 멤버가 잘못 초기화되었습니다. ISO C++ 표준을 준수하기 위해 Visual Studio .NET 2003 이전 버전의 Microsoft C++ 컴파일러에서 호환성이 손상되는 변경입니다.

다음 샘플에서는 C2477을 생성합니다.

// C2477.cpp
// compile with: /Za /c
template <class T>
struct S {
   static int n;
};

struct X {};
struct A: S<X> {};

int A::n = 0;   // C2477

template<>
int S<X>::n = 0;