Errore del compilatore C2477

'member': il membro dati statico non può essere inizializzato tramite la classe derivata

Un membro dati statico di una classe modello è stato inizializzato in modo non corretto. Si tratta di una modifica che causa un'interruzione con le versioni del compilatore Microsoft C++ prima di Visual Studio .NET 2003, per essere conforme allo standard ISO C++.

L'esempio seguente genera l'errore 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;