c++:避免优化变量
C++: avoid optimizing out variable
我在构造函数或类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();
如果构造函数或析构函数有可观察的行为,编译器不允许对其进行优化。所以不需要做任何复杂的操作
相关文章:
- 使用仅使用一次的变量调用的复制构造函数.这可能是通过调用move构造函数进行编译器优化的情况吗
- C++编译器是否优化了顺序静态变量读取?
- 当空基类也是成员变量时,为什么禁止空基优化?
- 未使用的C++未优化的静态成员函数/变量
- C++将 lambda 函数另存为成员变量,而不使用函数指针进行优化
- 未能优化看似明显的循环不变量(但volatile限定符发挥了神奇的作用)
- 现代c++编译器会优化不可变的临时变量吗
- 是否允许编译器优化掉局部易失性变量
- 现代编译器会优化只引用对象子集的局部变量吗
- 优化堆上创建的冗余变量
- 局部堆栈变量成员的返回值优化
- 为什么编译器并不总是优化局部变量?
- 静态局部变量会被错误地优化吗?
- 优化易失变量
- 关于循环变量优化的标准合规行为是什么?
- 用于 C/C++ 中的循环变量优化
- 为什么C++编译器不优化对结构数据成员的读取和写入,而不是不同的局部变量?
- 优化成员变量访问
- 如何查看C++中<优化>变量的值?
- c++:避免优化变量