Поделиться через


Ошибка компилятора C2144

синтаксическая ошибка: "type" должен предшествовать "token"

Вместо этого компилятор ожидал маркер и нашел тип .

Эта ошибка может быть вызвана отсутствием закрывающей скобки, правой скобки или точкой с запятой.

C2144 также может возникать при попытке создать макрос из ключевого слова CLR, содержащего символ пробела.

Вы также можете увидеть C2144, если вы пытаетесь выполнить переадресацию типов. Дополнительные сведения см. в разделе "Пересылка типов" (C++/CLI).

Примеры

В следующем примере возникает ошибка C2144 и показан способ ее устранения:

// C2144.cpp
// compile with: /clr /c
#define REF ref
REF struct MyStruct0;   // C2144

// OK
#define REF1 ref struct
REF1 MyStruct1;

В следующем примере возникает ошибка C2144 и показан способ ее устранения:

// C2144_2.cpp
// compile with: /clr /c
ref struct X {

   property double MultiDimProp[,,] {   // C2144
   // try the following line instead
   // property double MultiDimProp[int , int, int] {
      double get(int, int, int) { return 1; }
      void set(int i, int j, int k, double l) {}
   }

   property double MultiDimProp2[] {   // C2144
   // try the following line instead
   // property double MultiDimProp2[int] {
      double get(int) { return 1; }
      void set(int i, double l) {}
   }
};