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/