Partager via


Erreur du compilateur C2903

'identifier' : le symbole n’est ni un modèle de classe, ni un modèle de fonction

Remarques

Le code tente d’effectuer une instanciation explicite d’un élément autre qu’un modèle.

Examples

L’exemple suivant génère l’erreur C2903 :

// C2903.cpp
// compile with: /c
namespace N {
   template<class T> class X {};
   class Y {};
}
void g() {
   N::template Y y;   // C2903
   N::X<N::Y> y;   // OK
}

L’erreur C2903 peut également se produire lors de l’utilisation de génériques :

// C2903b.cpp
// compile with: /clr /c
namespace N {
   class Y {};
   generic<class T> ref class Z {};
}

void f() {
   N::generic Y y;   // C2903
   N:: generic Z<int>^ z;   // OK
}