コンパイラ エラー C2921
再定義 : 'class' : クラス テンプレートまたはジェネリックは 'type' として宣言されます。
ジェネリックまたはクラス テンプレートに複数の等しくない宣言が存在します。 このエラーを修正するには、型ごとに異なる名前を使用するか、型名の再定義を削除します。
次の例では、C2921 エラーが生成されます。
// C2921.cpp
// compile with: /c
template <class T> struct TC2 {};
typedef int TC2; // C2921
// try the following line instead
// typedef struct TC2<int> x; // OK - declare a template instance
C2921 は、ジェネリックを使用する場合にも発生することがあります。
// C2921b.cpp
// compile with: /clr /c
generic <class T> ref struct GC2 {};
typedef int GC2; // C2921
// try the following line instead
// typedef ref struct GC2<int> x;