0

MSDN他の場所uninitialized_copyでは、これは強力な例外保証を提供すると言っていますが、他のC++参照はそうではありません

これは実際にC++によって保証されていますか?

4

1 に答える 1

2

はい、C ++ 03はこの保証を提供しますが、実装を再確認する価値があります。

私が自分のマシンに持っていたドラフトコピーから、20.4.4:

次のアルゴリズムで正式なテンプレートパラメータとして使用されるすべてのイテレータは、operator*operator&が定義されているオブジェクトを返し、へのポインタを返す必要がありますT
アルゴリズムでは、入力イテレータ(24.1.1)の要件を満たすためuninitialized_copyに、正式なテンプレートパラメータが必要です。 以下のすべてのアルゴリズムでは、正式なテンプレートパラメーターは、フォワードイテレーター(24.1.3)の要件と、可変イテレーター(24.1)の要件を満たすために必要であり、例外がないというプロパティを持っている必要があります。有効なイテレータの増分、割り当て、比較、または逆参照からスローされます。次のアルゴリズムでは、例外がスローされても影響はありません。InputIterator
ForwardIterator

  • uninitialized_copy (等。)

そうです、それは、一部のページに表示される「可能な実装」が正しくない可能性があることを意味します。

于 2012-08-16T10:33:53.410 に答える