编译器添加的优化会导致“最终”方法的不同行为

时间:2012-11-02 07:00:30

标签: c++ optimization c++11 final

我曾使用same title发帖。但由于误解,所有的答案都在讨论它是否是有效的代码/行为。

然而,主要问题是,如果优化将启动或不启动?

参考链接的帖子,请参阅真实案例:

D *pD = new D;
pD->foo();  // `D::foo()` is `final`

所有编译器是否会通过不踢入虚拟机制来优化pD->foo()调用?

[注:
为什么我在前面的问题中给出了带有错误代码的示例?
我知道,以上述方式从基地到孩子的铸造并不是一个好的代码。主要目的是检查最终是否发生类似Java的优化,第一种方法是唯一可以在不进行汇编的情况下验证它的方法。 ]

0 个答案:

没有答案