Condividi tramite


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
}