以下行不会在运行时抛出异常:
boost::optional<double> dummy(boost::none);
double testValue = *dummy;
在包含*
的{{1}}上使用间接运算符(boost::optional
)时,为什么boost开发人员决定不抛出?作为参考,我在上面的代码中得到boost::none
中的随机值,因为它可能会分配内存的随机部分化部分。
这可能导致无声错误,因为您负责在使用之前检查该值。
答案 0 :(得分:9)
我能想到2:
与数组边界检查的情况相同:很好,但很贵。