C++ 为什么C++;std::optional::operator*()未声明为noexcept?
在代码上运行静态分析器时,我遇到std::optional::operator*()未声明为noexcept。在我看来,运算符没有很好的理由抛出,因为在获取其值之前,需要验证可选项是否已启用C++ 为什么C++;std::optional::operator*()未声明为noexcept?,c++,stl,c++17,C++,Stl,C++17,在代码上运行静态分析器时,我遇到std::optional::operator*()未声明为noexcept。在我看来,运算符没有很好的理由抛出,因为在获取其值之前,需要验证可选项是否已启用 是否有人能够澄清做出此决定的原因?找到了未使用noexcept的理由,并将其隐藏在std::可选提案n3672中: 访问包含的值的观察者-运算符*和 运算符->-未声明为noexcept(true),即使它们已 没有好的理由扔。这是因为他们强加了一个先决条件 该可选物体应啮合,并根据 N3248[6],库
是否有人能够澄清做出此决定的原因?找到了未使用noexcept的理由,并将其隐藏在std::可选提案n3672中: 访问包含的值的观察者-运算符*和 运算符->-未声明为noexcept(true),即使它们已 没有好的理由扔。这是因为他们强加了一个先决条件 该可选物体应啮合,并根据 N3248[6],库供应商可能需要使用异常来测试 实现具有所有必要的先决条件检查代码 在…内这些观察者函数仍然需要不抛出 例外情况
找到了未使用noexcept的理由,隐藏在std::可选提案n3672中: 访问包含的值的观察者-运算符*和 运算符->-未声明为noexcept(true),即使它们已 没有好的理由扔。这是因为他们强加了一个先决条件 该可选物体应啮合,并根据 N3248[6],库供应商可能需要使用异常来测试 实现具有所有必要的先决条件检查代码 在…内这些观察者函数仍然需要不抛出 例外情况