是否有任何编译器选项允许您在尝试分配临时对象时收到警告?
示例:
struct S {
S op() { return S(); }
};
int main() {
S s;
s.op() = s; // assign to temporary. Wants to warn here.
}
我知道您可以将op
的返回类型声明为const
以防止出现这种情况,但现在我感兴趣的只是编译器选项。
您可以使用任何流行的现代编译器。
答案 0 :(得分:0)
编译器可能无法说出有用的副作用。
编译器警告
int test( S & data );
test( S.op());