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


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

Оператор 'operator'' : не может определить постфиксный инкремент/декремент WinRT или оператор CLR, вызывающий оператор postfix WinRT или CLR, вызовет соответствующий оператор префикса WinRT или CLR (op_Increment/op_Decrement), но с семантикой постфикса

Среда выполнения Windows и среда CLR не поддерживают постфиксный оператор, а пользовательские постфиксные операторы не разрешены. Можно определить префиксный оператор, который будет использоваться для операций до и после приращения.

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

// C3920.cpp
// compile with: /clr /LD
public value struct V {
   static V operator ++(V me, int)
   // try the following line instead
   // static V operator ++(V me)
   {   // C3920
      me.m_i++;
      return me;
   }

   int m_i;
};