Kompilatorfel C2299

Funktion: beteendeförändring: en explicit specialisering kan inte vara en kopieringskonstruktor eller kopieringstilldelningsoperator

Anmärkningar

Det här felet kan också genereras som ett resultat av kompilatorns efterlevnadsarbete som utfördes för Visual Studio 2005. Tidigare versioner av Visual C++ tillät explicita specialiseringar för en kopieringskonstruktor eller en kopieringstilldelningsoperator.

Lös C2299 genom att inte göra kopieringskonstruktorn eller tilldelningsoperatorn till en funktionsmall. Gör dem till icke-mallfunktioner som har en klasstyp. All kod som anropar kopieringskonstruktorn eller tilldelningsoperatorn genom att uttryckligen ange mallargumenten måste ta bort mallargumenten.

Example

I följande exempel genereras C2299:

// C2299.cpp
// compile with: /c
class C {
   template <class T>
   C (T t);

   template <> C (const C&);   // C2299
   C (const C&);   // OK
};