编译器错误 C2477
“member”:静态数据成员无法通过派生类初始化
模板类的静态数据成员初始化不正确。 这是对 Visual Studio .NET 2003 之前的 Microsoft C++ 编译器版本的重大更改,以符合 ISO 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;