Ошибка компилятора C2477

"member": статический член данных не может быть инициализирован с помощью производного класса

Статический элемент данных класса шаблона был инициализирован неправильно. Это критическое изменение с версиями компилятора Microsoft C++ до Visual Studio .NET 2003, чтобы соответствовать стандарту 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;