0
MSDN和other places说uninitialized_copy
提供了强有力的异常保证,但other C++引用don't。是uninitialized_copy()异常安全吗?
这实际上是由C++保证的,还是不是?
MSDN和other places说uninitialized_copy
提供了强有力的异常保证,但other C++引用don't。是uninitialized_copy()异常安全吗?
这实际上是由C++保证的,还是不是?
是的,C++ 03确实提供了这个保证,但值得仔细检查的实现。
从草案的副本,我有我的机器上,20.4.4:
被用作以下算法正式模板参数的所有迭代器都要求有自己的
operator*
回报,经营者的物体定义了&并返回指向T
的指针。
在算法uninitialized_copy
中,正式模板参数InputIterator
需要满足输入迭代器(24.1.1)的要求。
在以下所有算法中,正式模板参数ForwardIterator
需要满足前向迭代器(24.1.3)的要求,并且还要满足可变迭代器(24.1)的要求,并且需要具有属性从有效迭代器的增量,赋值,比较或取消引用中不会引发异常。
在以下算法中,如果引发异常,则不会有效果。
uninitialized_copy
(等)
所以,是的,这意味着 “可能实现” 你some pages看到可能不正确。