Errore del compilatore C2951
Le dichiarazioni di tipo sono consentite solo nell'ambito globale, dello spazio dei nomi o della classe
Non è possibile dichiarare una classe generica o modello all'esterno dell'ambito globale o dello spazio dei nomi. Se si effettuano dichiarazioni generica o di modello in un file di inclusione, assicurarsi che il file di inclusione sia nell'ambito globale.
L'esempio seguente genera l'errore C2951:
// C2951.cpp
template <class T>
class A {};
int main() {
template <class T> // C2951
class B {};
}
C2951 può verificarsi anche quando si usano generics:
// C2951b.cpp
// compile with: /clr /c
// OK
generic <class T>
ref class GC { };
int main() {
generic <class T> ref class GC2 {}; // C2951
}