Errore del compilatore C2299
'function': modifica del comportamento: una specializzazione esplicita non può essere un costruttore di copia o un operatore di assegnazione di copia
Osservazioni:
Questo errore può essere generato anche in seguito al lavoro di conformità del compilatore eseguito per Visual Studio 2005. Le versioni precedenti di Visual C++ consentivano specializzazioni esplicite per un costruttore di copia o un operatore di assegnazione di copia.
Per risolvere C2299, non rendere il costruttore di copia o l'operatore di assegnazione un modello di funzione. Impostarle come funzioni non modello che accettano un tipo di classe. Qualsiasi codice che chiama il costruttore di copia o l'operatore di assegnazione specificando in modo esplicito gli argomenti del modello deve rimuovere gli argomenti del modello.
Esempio
L'esempio seguente genera l'errore C2299:
// C2299.cpp
// compile with: /c
class C {
template <class T>
C (T t);
template <> C (const C&); // C2299
C (const C&); // OK
};