编译器错误 C2932

“class”:type-class-id 重新定义为“identifier”的数据成员

不能将泛型或模板类用作数据成员。

此错误在 Visual Studio 2022 及更高版本中已过时。

以下示例生成 C2932:

// C2932.cpp
// compile with: /c
template<class T>
struct TC {};

struct MyStruct {
   int TC<int>;   // C2932
   int TC;   // OK
};

使用泛型时也可能发生 C2932:

// C2932b.cpp
// compile with: /clr /c
generic<class T>
ref struct GC {};

struct MyStruct {
   int GC<int>;   // C2932
   int GC;   // OK
};