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看到可能不正確。