Compiler Error C2940
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Compiler Error C2940.
class' : type-class-id redefined as a local typedef
You cannot use a generic or template class as a local typedef.
The following sample generates C2940:
// C2940.cpp
template<class T>
struct TC {};
int main() {
typedef int TC<int>; // C2940
typedef int TC; // OK
}
C2940 can also occur when using generics:
// C2940b.cpp
// compile with: /clr
generic<class T>
ref struct GC { };
int main() {
typedef int GC<int>; // C2940
typedef int GC;
}
Show: