Partager via


Erreur du compilateur C2477

Mise à jour : novembre 2007

Message d'erreur

'membre' : les données membres static ne peuvent pas être initialisées via une classe dérivée
'member' : static data member cannot be initialized via derived class

Les données membres static d'une classe de modèle n'ont pas été initialisées correctement. Ceci constitue un changement majeur par rapport aux versions du compilateur Visual C++ antérieures à Visual Studio .NET 2003, afin de se conformer à la norme ISO C++.

Pour plus d'informations, consultez le résumé de Compile-Time Breaking Changes.

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;