Error del compilador C2477
Actualización: noviembre 2007
Mensaje de error
'miembro': no se puede inicializar el miembro de datos estático mediante una clase derivada
'member' : static data member cannot be initialized via derived class
Se ha inicializado incorrectamente un miembro de datos estático de una clase de plantilla. Esto representa un cambio importante respecto a las versiones del compilador de Visual C++ anteriores a Visual Studio .NET 2003, para lograr la compatibilidad con el estándar ISO C++.
Vea Resumen de cambios importantes en tiempo de compilación para obtener más información.
El ejemplo siguiente genera el error 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;