以下行不会在运行时抛出异常:
boost::optional<double> dummy(boost::none);
double testValue = *dummy;
Run Code Online (Sandbox Code Playgroud)
升级开发人员*在boost::optional包含时使用间接运算符()时是否有理由决定不抛出boost::none?作为参考,我testValue在上面的代码中得到随机值,因为它可能分配了内存的随机单元化部分.
这可能会导致无提示错误,因为您负责在使用之前检查该值.
我能想到2:
它与数组边界检查的情况相同:很好,但价格昂贵.