编译器错误 C3071
运算符“operator”只能应用于 ref 类或值类型的实例中
不能在本机类型上使用 CLR 运算符。 可以在 ref 类或 ref 结构(值类型)上使用运算符,但不可在本机类型(如 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
}