Udostępnij za pomocą


Błąd kompilatora C2921

redefinition : "class" : szablon klasy lub rodzaj jest ponownie deklarowany jako "typ"

Uwagi

Klasa ogólna lub szablon ma wiele deklaracji, które nie są równoważne. Aby naprawić ten błąd, użyj różnych nazw dla różnych typów lub usuń ponowne zdefiniowanie nazwy typu.

Przykłady

Poniższy przykład generuje 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 może również wystąpić w przypadku używania typów ogólnych.

// 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;