0

MSDN其他地方都说uninitialized_copy提供了强大的异常保证,但其他C++ 引用却没有

这实际上是由 C++ 保证的,还是不保证的?

4

1 回答 1

2

是的,C++03 确实提供了这种保证,但值得仔细检查您的实现。

从我的机器上的草稿副本,20.4.4:

在以下算法中用作形式模板参数的所有迭代器都必须operator*返回一个定义了 operator& 的对象并返回一个指向 的指针T
在算法uninitialized_copy中,形式模板参数InputIterator需要满足输入迭代器(24.1.1)的要求。
在以下所有算法中,形式模板参数ForwardIterator既要满足前向迭代器(24.1.3)的要求,又要满足可变迭代器(24.1)的要求,并且要求具有无异常的性质从有效迭代器的递增、赋值、比较或取消引用中抛出。
在以下算法中,如果抛出异常,则不会产生任何影响。

  • uninitialized_copy (ETC。)

所以是的,这意味着您在某些页面上看到的“可能的实现”可能是不正确的。

于 2012-08-16T10:33:53.410 回答