共用方式為


編譯器錯誤 C2990

'class' :已宣告為類別類型的非類別類型

非泛型或範本類別會重新定義泛型或範本類別。 檢查頭檔是否有衝突。

下列範例會產生 C2990:

// C2990.cpp
// compile with: /c
template <class T>
class C{};
class C{};   // C2990

使用泛型時,也會發生 C2990:

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

ref struct GC {};   // C2990

C2990 也可能因為Visual Studio 2005 Microsoft C++ 編譯程式的重大變更而發生;編譯程式現在要求相同類型的多個宣告與範本規格相同。

下列範例會產生 C2990:

// C2990c.cpp
// compile with: /c
template<class T>
class A;

template<class T>
struct A2 {
   friend class A;   // C2990
};

// OK
template<class T>
struct B {
   template<class T>
   friend class A;
};