std::可选运算符*() 和运算符>() - 未定义的行为

  • 本文关键字:运算符 未定义 std c++
  • 更新时间 :
  • 英文 :


当实例未初始化时,让操作员*((和操作员 ->((的动机是什么?

为什么不将其视为错误并抛出异常?

运行时性能。

请参阅提案,修订版4,该提案说:

使用间接操作员进行脱离的对象是未定义的 行为。此行为提供最大的运行时性能。

我想它们是如此低级别(这只是编译器的内存访问(,以至于异常处理将是这种非常简短的方法的过度杀伤。

基本上的性能。无需检查所需的无效值,也不需要例外。如果需要例外,则有value方法。

最新更新