Partilhar via


Erro do compilador C2931

'class' : type-class-id redefinido como uma função de membro de 'identifier'

Observações

Você não pode usar uma classe genérica ou de modelo como uma função de membro de outra classe.

Este erro está obsoleto no Visual Studio 2022 e versões posteriores.

Este erro pode ser causado se as chaves forem incorretamente combinadas.

Examples

O exemplo a seguir gera C2931:

// C2931.cpp
// compile with: /c
template<class T>
struct TC { };
struct MyStruct {
   void TC<int>();   // C2931
};

struct TC2 { };
struct MyStruct2 {
   void TC2();
};

C2931 também pode ocorrer quando se utilizam genéricos:

// C2931b.cpp
// compile with: /clr /c
generic<class T> ref struct GC {};
struct MyStruct {
   void GC<int>();   // C2931
   void GC2();   // OK
};