2017-05-03 59 views
1

什么是对既有的operator *()和运营商的积极性 - >() - 当实例未初始化未定义行为?的std ::可选的operator *()和operator - >() - 未定义的行为

为什么不把它当作一个错误,并抛出一个异常?

+1

性能/速度 –

+2

[性病::可选提议](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3672.html)报价:'使用间接运算符是一个未定义的行为。这种行为提供了最大的运行时性能.' –

回答

1

运行时性能。

proposal, revision 4,这表示:

使用间接运算符为脱离对象是未定义 行为。此行为可提供最高的运行时性能

0

我猜他们是如此低的水平(这只是编译器的存储器存取),其异常处理将是这个非常的性能,低廉的方法是矫枉过正。

0

性能基本。不检查所需的无效值,也不需要例外。如果你想要例外,那就是value方法。

相关问题