GeezerVison is showing cpprefjp.github.io — std::ranges::uninitialized_value_construct - cpprefjp C++日本語リファレンス
最終更新日時:
2026年08月18日 11時11分59秒 (JST)
Akira Takahashi
が更新
履歴
編集
function template
<memory>
std::ranges:: uninitialized_value_construct (C++20)
namespace std :: ranges {
template < no-throw-forward-iterator I , no-throw-sentinel < I > S >
requires default_initializable < iter_value_t < I >>
I
uninitialized_value_construct ( I first , S last ); // (1) C++20
template < no-throw-forward-iterator I , no-throw-sentinel < I > S >
requires default_initializable < iter_value_t < I >>
constexpr I
uninitialized_value_construct ( I first , S last ); // (1) C++26
template < no-throw-forward-range R >
requires default_initializable < range_value_t < R >>
borrowed_iterator_t < R >
uninitialized_value_construct ( R && r ); // (2) C++20
template < no-throw-forward-range R >
requires default_initializable < range_value_t < R >>
constexpr borrowed_iterator_t < R >
uninitialized_value_construct ( R && r ); // (2) C++26
template < execution-policy Ep ,
random_access_iterator I ,
sized_sentinel_for < I > S >
requires default_initializable < iter_value_t < I >>
I
uninitialized_value_construct ( Ep && exec ,
I first , S last ); // (3) C++26
template < execution-policy Ep ,
sized-random-access-range R >
requires default_initializable < range_value_t < R >>
borrowed_iterator_t < R >
uninitialized_value_construct ( Ep && exec , R && r ); // (4) C++26
}
概要
未初期化領域の範囲 (r、[first, last)) の各要素を値構築する。
(1): イテレータ範囲を指定する
(2): Rangeを直接指定する
(3): (1)の並列アルゴリズム版。実行ポリシーを指定する
(4): (2)の並列アルゴリズム版。実行ポリシーを指定する
テンプレートパラメータ制約
効果
説明用の関数voidifyがあるとして、
template < class T >
constexpr void * voidify ( T & obj ) noexcept {
return addressof ( obj );
}
以下と等価である:
例外
呼び出すコンストラクタなどから例外が送出された場合、その例外がこの関数の外側に伝播される前に、その時点で構築済のオブジェクトは全て未規定 の順序で破棄される。すなわち、例外が送出された場合は初期化対象領域は未初期化のままとなる。
例
基本的な使い方
出力
0,0
0,0
0,0
並列アルゴリズムの例 (C++26)
出力
0 0 0
バージョン
言語
処理系
関連項目
参照