Compartilhar via


Erro do compilador C3071

o operador 'operator' só pode ser aplicado a uma instância de uma ref class ou de um tipo value

Um operador CLR não pode ser usado em um tipo nativo. Pode ser usado o operador em uma classe ref ou um struct ref (um tipo de valor), mas não um tipo nativo, como int ou um alias para um tipo nativo, como System::Int32. Esses tipos não podem ser convertidos a partir do código C++ de uma maneira que se refira à variável nativa; portanto, o operador não pode ser usado.

Para obter mais informações, confira Operador de referência de acompanhamento.

Exemplo

O exemplo a seguir gera C3071.

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

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

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