Compartilhar via


Erro do compilador C2477

'member': um membro de dados estático não pode ser inicializado via classe derivada

Um membro de dados estático de uma classe de modelo foi inicializado incorretamente. Essa é uma alteração interruptiva com versões do compilador do Microsoft C++ anteriores ao Visual Studio .NET 2003, para fins de conformidade com o padrão ISO C++.

O seguinte exemplo gera o erro 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;