GeezerVison is showing cpprefjp.github.io — std::uninitialized_copy - cpprefjp C++日本語リファレンス
最終更新日時:
2026年09月22日 22時03分15秒 (JST)
rotarymars
が更新
履歴
編集
function template
<memory>
std:: uninitialized_copy
namespace std {
template < class InputIterator , class ForwardIterator >
ForwardIterator
uninitialized_copy ( InputIterator first ,
InputIterator last ,
ForwardIterator result ); // (1) C++98
template < class InputIterator , class ForwardIterator >
constexpr ForwardIterator
uninitialized_copy ( InputIterator first ,
InputIterator last ,
ForwardIterator result ); // (1) C++26
template < class ExecutionPolicy , class InputIterator , class ForwardIterator >
ForwardIterator
uninitialized_copy ( ExecutionPolicy && exec ,
InputIterator first ,
InputIterator last ,
ForwardIterator result ); // (2) C++17
}
概要
未初期化領域の範囲を配置newで初期化してコピー出力する。
入力範囲[first, last)のコピーを未初期化出力範囲[result, )に書き込む。
事前条件
イテレータ範囲[result, result + (last - first))が[first, last)と重ならないこと
効果
C++98 : 以下と等価
for (; first != last ; ++ result , ++ first )
:: new ( static_cast < void *> ( &* result ))
typename iterator_traits < ForwardIterator >:: value_type ( * first );
C++17 : 以下と等価
for (; first != last ; ++ result , ++ first )
:: new ( static_cast < void *> ( addressof ( * result )))
typename iterator_traits < ForwardIterator >:: value_type ( * first );
戻り値
result
例外
呼び出すコンストラクタなどから例外が送出された場合、その例外がこの関数の外側に伝播される前に、その時点で構築済のオブジェクトは全て未規定 の順序で破棄される。すなわち、例外が送出された場合は初期化対象領域は未初期化のままとなる。
例
出力
1
2
3
関連項目
参照