Compiler Error C2933
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 C2933.
class' : type-class-id redefined as a typedef member of 'identifier'
You cannot use a generic or template class as a typedef member.
The following sample generates C2933:
// C2933.cpp
// compile with: /c
template<class T> struct TC { };
struct MyStruct {
typedef int TC<int>; // C2933
};
struct TC2 { };
struct MyStruct2 {
typedef int TC2;
};
C2933 can also occur when using generics:
// C2933b.cpp
// compile with: /clr /c
generic<class T> ref struct GC { };
struct MyStruct {
typedef int GC<int>; // C2933
};
ref struct GC2 { };
struct MyStruct2 {
typedef int GC2;
};
Show: