C ++ 14是否可以解除对临时对象的安全性?

时间:2017-08-12 05:03:12

标签: c++ memory c++14

我有这样的代码,我很好奇这是否安全。

#include <iostream>
struct A{
    int x=4;
    A* operator-(){return this;}    
};
A func(){return A();}

int main(){
    std::cout<<(-func())->x<<std::endl; //Dereferencing to temporary object
    return 0;
}

我使用带有-O3的g ++ 6.3.0编译它,它按照我的预期打印了4。我知道如果我将-func()的结果放在一个新变量中并在以后取消引用它会不起作用,但在上面的例子中,结果是否得到保证?

0 个答案:

没有答案