Erro do compilador C2940
'class' : type-class-id redefinida como uma typedef local
Você não pode usar uma classe genérica ou de modelo como uma typedef
local.
Esse erro ficou obsoleto no Visual Studio 2022 e em versões posteriores.
O exemplo a seguir gera o erro C2940:
// C2940.cpp
template<class T>
struct TC {};
int main() {
typedef int TC<int>; // C2940
typedef int TC; // OK
}
O erro C2940 também pode ocorrer ao usar genéricos:
// C2940b.cpp
// compile with: /clr
generic<class T>
ref struct GC { };
int main() {
typedef int GC<int>; // C2940
typedef int GC;
}