c++ - 实现如何保证迭代器的复制构造函数不抛出?

标签 c++ exception-safety

C++11 标准的条款 23.2.1.10 说

"no copy ctor of a returned iterator throws an exception"

这是否基本上说明了迭代器的复制 ctor 是否有可能甚至不抛出 bad_alloc 大概(留下迭代器可能只是一个指针的情况,这里没有问题)因为它将使用已经构建的信息“返回的迭代器”?因为它是按值传递的,所以堆栈会在被调用函数中分配,因此可以保证没有内存问题吗?

最佳答案

那一段讲的是标准库中容器使用的迭代器。众所周知,这些迭代器可以通过多种方式实现,因此它们在复制时不会抛出异常。例如,它们都不必使用任何动态分配的内存。

保证仅适用于这些迭代器,而不适用于一般的迭代器(尽管遵循示例是个好主意)。

关于c++ - 实现如何保证迭代器的复制构造函数不抛出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13428851/

相关文章:

c++ - getter(按值)方法的异常安全保证是什么?

c++ - C/C++ 中的 asc 和 chr 等价物

c++ - 重载运算符 : Matrix Addition

c++ - OpenCV 聚类函数 cv KMeans2() - 数组中的聚类中心类型是什么?

c++ - 异常安全 C++ 共享指针

c++ - LNK1169 错误 C++ 与自己的类

c++ - 为什么 glm::vec 将 vec 值表示为 union ?

c++11 - C++ unordered_map 异常安全

c++ - 与构造函数参数相关的异常安全的习语