uninitialized_copy()异常安全吗?

时间:2012-08-16 10:33:53

标签: c++ exception exception-safety

MSDNother places表示uninitialized_copy提供强大的异常保证,但other C ++引用don't

这实际上是否由C ++保证?

1 个答案:

答案 0 :(得分:2)

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

从我在机器上的草稿中,20.4.4:

  

在以下算法中用作形式模板参数的所有迭代器都需要让operator*返回一个运算符&已定义并返回指向T的指针   在算法uninitialized_copy中,需要形式模板参数InputIterator来满足输入迭代器(24.1.1)的要求。   在以下所有算法中,正式模板参数ForwardIterator需要满足前向迭代器(24.1.3)的要求,并且还要满足可变迭代器(24.1)的要求,并且必须具有从有效迭代器的增量,赋值,比较或取消引用中抛出异常的属性   在以下算法中,如果抛出异常,则无效。

     
      
  • uninitialized_copy(等)
  •   

是的,这意味着您在some pages上看到的“可能实施”可能不正确。