我在构造函数或类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();
答案 0 :(得分:12)
如果构造函数或析构函数具有可观察行为,则编译器不允许优化它。所以没有必要做任何棘手的事情。