Partager via


Erreur du compilateur C3149

'type' : ne peut pas utiliser ce type ici sans 'char' de niveau supérieur

Une déclaration n’a pas été spécifiée correctement.

Par exemple, vous avez peut-être défini un type CLR à l’étendue globale et essayé de créer une variable du type dans le cadre de la définition. Étant donné que les variables globales des types CLR ne sont pas autorisées, le compilateur génère C3149.

Pour résoudre cette erreur, déclarez des variables de types CLR à l’intérieur d’une fonction ou d’une définition de type.

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

// C3149.cpp
// compile with: /clr
using namespace System;
int main() {
   // declare an array of value types
   array< Int32 ^> IntArray;   // C3149
   array< Int32>^ IntArray2;   // OK
}

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

// C3149b.cpp
// compile with: /clr /c
delegate int MyDelegate(const int, int);
void Test1(MyDelegate m) {}   // C3149
void Test2(MyDelegate ^ m) {}   // OK