C++:避免​​优化变量

dem*_*emi 3 c++

我在构造函数或类中有一些有用的代码Valuable.我想确定它以前执行过submain.我怎样才能保证它没有经过优化?

int main()
{
    // Dear compiler, please don't optimize ctor call out!
    Valuable var;

    return submain();
}
Run Code Online (Sandbox Code Playgroud)

局部变量是否足够?我需要使用static:

static Valuable *v = new Valuable();
delete v;
v = NULL;
Run Code Online (Sandbox Code Playgroud)

我可以缩短之前的一个班轮:

delete new Valuable();
Run Code Online (Sandbox Code Playgroud)

Ada*_*eld 12

如果构造函数或析构函数具有可观察行为,则不允许编译器对其进行优化.所以没有必要做任何棘手的事情.