c++:避免优化变量

C++: avoid optimizing out variable

本文关键字:优化 变量 c++      更新时间:2023-10-16

我在构造函数或类Valuable中有一些有用的代码。我要确保它在submain之前执行。我怎么保证它没有被优化?

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

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

static Valuable *v = new Valuable();
delete v;
v = NULL;

我可以把前一行缩短为一行吗:

delete new Valuable();

如果构造函数或析构函数有可观察的行为,编译器不允许对其进行优化。所以不需要做任何复杂的操作