名前空間
変種
操作

std::uninitialized_construct_using_allocator

From cppreference.com
< cpp‎ | memory
 
 
メモリ管理ライブラリ
(説明用*)
未初期化メモリのアルゴリズム
(C++17)
(C++17)
(C++17)
制約付き未初期化
メモリアルゴリズム
Cライブラリ

アロケータ
uninitialized_construct_using_allocator
(C++20) 
メモリリソース
ガベージコレクションのサポート
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
未初期化ストレージ
(C++20まで*)
(C++20まで*)
明示的な生存期間管理
 
ヘッダ <memory> で定義
template< class T, class Alloc, class... Args >

constexpr T* uninitialized_construct_using_allocator( T* p,
                                                      const Alloc& alloc,

                                                      Args&&... args );
(C++20以降)

未初期化のメモリ位置 p に、uses-allocator construction を用いて、指定された型 T のオブジェクトを構築します。

以下と等価です。

return std::apply(
    [&]<class... Xs>(Xs&&...xs)
    {
        return std::construct_at(p, std::forward<Xs>(xs)...);
    },
    std::uses_allocator_construction_args<T>(alloc, std::forward<Args>(args)...));

目次

[編集] パラメータ

p - オブジェクトが配置されるメモリ位置
alloc - 使用するアロケータ
args - T のコンストラクタに渡す引数

[編集] 戻り値

新しく作成された型 T のオブジェクトへのポインタ。

[編集] 例外

T のコンストラクタによって投げられる例外を投げる可能性があります。典型的には std::bad_alloc を含みます。

[編集]

[編集] 関連項目

指定された型が uses-allocator 構築をサポートしているかどうかをチェックします
(クラステンプレート) [編集]
uses-allocator 構築によって、与えられた型のオブジェクトを作成します
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)