Ошибка компилятора C2931
"class" : type-class-id переопределен как функция-член идентификатора
Универсальный или шаблонный класс нельзя использовать как функцию-член другого класса.
Эта ошибка устарела в Visual Studio 2022 и более поздних версиях.
Эта ошибка может возникнуть при неправильной расстановке скобок.
Следующий пример приводит к возникновению ошибки C2931:
// C2931.cpp
// compile with: /c
template<class T>
struct TC { };
struct MyStruct {
void TC<int>(); // C2931
};
struct TC2 { };
struct MyStruct2 {
void TC2();
};
Ошибка C2931 также может возникнуть при использовании универсальных шаблонов.
// C2931b.cpp
// compile with: /clr /c
generic<class T> ref struct GC {};
struct MyStruct {
void GC<int>(); // C2931
void GC2(); // OK
};