编译器错误 C2675
一元“operator”:“type”不定义该运算符或到预定义运算符可接收类型的转换
使用一元运算符时也可能发生 C2675,并且类型不定义运算符或到预定义运算符可接收类型的转换。 要使用该运算符,必须针对指定类型将其重载,或者定义一个到某个类型(该运算符已针对此类型进行了定义)的转换。
示例
下面的示例生成 C2675。
// C2675.cpp
struct C {
C(){}
} c;
struct D {
D(){}
void operator-(){}
} d;
int main() {
-c; // C2675
-d; // OK
}