共用方式為


編譯器錯誤 C2990

更新:2007 年 11 月

錯誤訊息

'class' : 非樣板型別已經宣告為樣板型別

非泛型或樣板類別重複定義泛型或樣板類別。請檢查標頭檔是否有衝突。

下列範例會產生 C2990:

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

使用 Generics 時也可能發生 C2990:

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

ref struct GC {};   // C2990

由於 Visual C++ 2005 的 Visual C++ 編譯器之最新變更,也可能會發生 C2990 錯誤。編譯器現在要求相同型別的多個宣告必須在樣板規格上完全相同。如需詳細資訊,請參閱 Visual C++ 2005 編譯器的重大變更

下列範例會產生 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;
};