在C ++ 11中将std :: list :: splice()和std :: forward_list :: splice_after()声明为noexcept吗?

时间:2019-02-23 02:24:30

标签: c++ c++11 splice stdlist forward-list

Cppreference没有提及std::forward_list::splice_after()std::list::splice()的异常保证。

但是,由于这两个函数仅更改列表节点的指针,因此不需要copy / move任何元素或分配任何内存,恕我直言,它们应为noexcept

他们是noexcept中的C++11吗?如果不是,为什么不呢?

1 个答案:

答案 0 :(得分:1)

除一个人外,其他人都没有抛出“ ”。标准中遗漏的内容,似乎是一种疏忽。

它们并非无例外,因为它们的合同狭窄。如果您打破了(许多)前提条件,则调试模式实现可能会引发异常。