編譯器錯誤 C2299
更新:2007 年 11 月
錯誤訊息
'function' : 行為變更: 明確特製化不能是複製建構函式或複製指派運算子
對 Visual C++ 2005 的編譯器完成一致性處理後也可能會發生這項錯誤:舊版 Visual C++ 允許將複製建構函式或複製指派運算子明確特製化。
若要解決 C2299 的問題,請不要讓複製建構函式或指派運算子成為樣板函式,而要讓非樣板函式採用類別型別。透過明確指定樣板引數呼叫複製建構函式或指派運算子的任何程式碼都需要移除樣板引數。
如需詳細資訊,請參閱 Visual C++ 2005 編譯器的重大變更。
下列範例會產生 C2299:
// C2299.cpp
// compile with: /c
class C {
template <class T>
C (T t);
template <> C (const C&); // C2299
C (const C&); // OK
};