Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么C++;std::optional::operator*()未声明为noexcept?_C++_Stl_C++17 - Fatal编程技术网

C++ 为什么C++;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],库

在代码上运行静态分析器时,我遇到std::optional::operator*()未声明为noexcept。在我看来,运算符没有很好的理由抛出,因为在获取其值之前,需要验证可选项是否已启用


是否有人能够澄清做出此决定的原因?

找到了未使用noexcept的理由,并将其隐藏在std::可选提案n3672中:

访问包含的值的观察者-运算符*和 运算符->-未声明为noexcept(true),即使它们已 没有好的理由扔。这是因为他们强加了一个先决条件 该可选物体应啮合,并根据 N3248[6],库供应商可能需要使用异常来测试 实现具有所有必要的先决条件检查代码 在…内这些观察者函数仍然需要不抛出 例外情况


找到了未使用noexcept的理由,隐藏在std::可选提案n3672中:

访问包含的值的观察者-运算符*和 运算符->-未声明为noexcept(true),即使它们已 没有好的理由扔。这是因为他们强加了一个先决条件 该可选物体应啮合,并根据 N3248[6],库供应商可能需要使用异常来测试 实现具有所有必要的先决条件检查代码 在…内这些观察者函数仍然需要不抛出 例外情况