Partager via


Erreur du compilateur C2477

'member' : le membre de données statique ne peut pas être initialisé par le biais d’une classe dérivée

Un membre de données statique d’une classe de modèle a été initialisé de manière incorrecte. Il s’agit d’un changement cassant avec les versions du compilateur Microsoft C++ antérieures à Visual Studio .NET 2003, afin de se conformer à la norme ISO C++.

L’exemple suivant génère l’erreur 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;