检测(无意义)分配给临时对象

时间:2015-10-16 10:08:42

标签: c++ compiler-warnings temporary-objects compiler-options

是否有任何编译器选项允许您在尝试分配临时对象时收到警告?

示例:

struct S {
    S op() { return S(); }
};

int main() {
    S s;
    s.op() = s; // assign to temporary. Wants to warn here.
}

我知道您可以将op的返回类型声明为const以防止出现这种情况,但现在我感兴趣的只是编译器选项。

您可以使用任何流行的现代编译器。

1 个答案:

答案 0 :(得分:0)

编译器可能无法说出有用的副作用。

编译器警告

int test( S & data );

test( S.op());