在C ++ 11中声明为noexcept的std :: list :: splice()和std :: forward_list :: splice_after()是什么?

问题描述 投票:1回答:1

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

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

他们是noexceptC++11吗?如果他们不是,为什么不呢?

c++ c++11 splice stdlist forward-list
1个回答
1
投票

除了一个之外,所有人都有一个“投掷:没什么。”在标准中,缺少它似乎是一种疏忽。

它们并非noexcept,因为它们是狭义的。如果中断(许多)前提条件,调试模式实现可能会抛出异常。

© www.soinside.com 2019 - 2024. All rights reserved.