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


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

оператор "operator" можно применить только к экземпляру класса ref или к типу значений

Оператор среды CLR нельзя использовать с неуправляемым типом. Оператор можно использовать в классе или структуре ссылки (тип значения), но не в управляемом типе, таком как int, или псевдониме управляемого типа, таком как System::Int32. Эти типы не могут быть упакованы в коде C++ так, чтобы они ссылались на управляемую переменную, поэтому оператор нельзя использовать.

Дополнительные сведения см. в разделе "Оператор справочника по отслеживанию".

Пример

Следующий пример приводит к возникновению ошибки C3071.

// C3071.cpp
// compile with: /clr
class N {};
ref struct R {};

int main() {
   N n;
   %n;   // C3071

   R r;
   R ^ r2 = %r;   // OK
}