Ошибка компилятора C2940
"class" : type-class-id переопределен как локальный типд
Нельзя использовать универсальный или шаблонный класс в качестве локального typedef
.
Эта ошибка устарела в Visual Studio 2022 и более поздних версиях.
Следующий пример приводит к возникновению ошибки C2940:
// C2940.cpp
template<class T>
struct TC {};
int main() {
typedef int TC<int>; // C2940
typedef int TC; // OK
}
Ошибка C2940 также может возникнуть при использовании универсальных шаблонов:
// C2940b.cpp
// compile with: /clr
generic<class T>
ref struct GC { };
int main() {
typedef int GC<int>; // C2940
typedef int GC;
}