是的,我已经查看了可以找到的C++ standards(或草稿),但没有找到STL容器提供的任何全面的异常保证。我偶尔会发现某些类型的某些功能的描述不完整。也许它在那里,但我不知道,我不知道。

注意:我是而不是,要求提供人们可以想到的所有担保 list ,该 list 基本上在this question中。
我正在寻找此信息本身的权威来源-或最好是该来源的免费版本(例如标准草案),在此我或多或少可以将其视为官方。

最佳答案

阅读标准可能会让人感到恐惧(让我们回到标准),但是Bjarne Stroustrup在他的《 C++编程语言》一书中对此主题写了一个非常好的附录。他将此附录发布在

http://www.stroustrup.com/3rd_safe0.html,位于
http://www.stroustrup.com/3rd_safe.pdf

它很长很详细(写得很好)。例如,您可能会发现第E.4节有趣,引用:



此外,第E.4.1节规定



请参阅第956页。它包含一个表,用于 vector ,双端队列,列表和 map 的各种操作。
总而言之,这些容器上的所有操作都是非空操作或强操作,但N-元素插入映射提供了基本保证。

注意:以上文字较旧,没有针对C++ 11,但对于大多数目标和目的,仍应足够正确。

关于C++ 11 ...

有关容器的标准第一状态array, deque, forward_list, list, vector, map, set, unordered_map, unordered_set, queue,stack:


23.2.1/10 :



上面提到的各个部分(每个都称为“异常安全保证”)中指出的怪癖大多是针对特殊情况的,例如处理所包含类型的哈希,比较操作以及引发交换和引发移动的异常时操作。

关于c++ - 在哪里可以找到标准容器和算法的所有异常(exception)保证?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11699083/

10-14 07:12