Erreur du compilateur C2897
Un destructeur/finaliseur ne peut pas être un modèle de fonction
Les destructeurs ou finaliseurs ne peuvent pas être surchargés, de sorte que la déclaration d’un destructeur en tant que modèle (qui définirait un ensemble de destructeurs) n’est pas autorisé.
Exemples
L’exemple suivant génère l’erreur C2897.
// C2897.cpp
// compile with: /c
class X {
public:
template<typename T> ~X() {} // C2897
};
L’exemple suivant génère l’erreur C2897.
// C2897_b.cpp
// compile with: /c /clr
ref struct R2 {
protected:
template<typename T> !R2(){} // C2897 error
};