我正在使用 C++98。函数调用可以重新排序到什么程度?我没有使用任何全局状态,仅使用函数局部对象的状态。
我的具体情况是:
{
RaiiType T;
Object1.FunctionCall();
Object2.FunctionCall();
}
在下一个作用域中声明了 Object1 和 Object2。 T
的构造函数是否允许在任一函数调用之后重新排序,假设它可以被简单地证明(至少对人类而言)在构造和函数调用之间没有依赖关系?
在我的特定情况下,RAII 对象用于为函数调用的执行计时。
最佳答案
只要符合标准的程序无法区分其 observable behavior 中的差异,编译器(以及系统中的其他组件)可以随意重新排序指令和操作。
关于c++ - 函数调用可以重新排序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30606924/