Namespaces
Variants

std::pmr::polymorphic_allocator<T>:: allocate_object

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
template < class U >
U * allocate_object ( std:: size_t n = 1 ) ;
(C++20以降)

U 型のオブジェクト n 個分のストレージを、基盤となるメモリリソースを使用して割り当てます。

std:: numeric_limits < std:: size_t > :: max ( ) / sizeof ( U ) < n の場合、 std::bad_array_new_length をスローする。それ以外の場合は return static_cast < U * > ( allocate_bytes ( n * sizeof ( U ) , alignof ( U ) ) ) ; と等価である。

目次

パラメータ

n - ストレージを割り当てるオブジェクトの数

戻り値

割り当てられたストレージへのポインタ。

注記

この関数は完全特殊化アロケータ std:: pmr :: polymorphic_allocator <> で使用するために導入されましたが、 std:: pmr :: polymorphic_allocator < T > から std:: pmr :: polymorphic_allocator < U > へのrebindを回避するショートカットとして、あらゆる特殊化で有用です。

U は推論されないため、この関数を呼び出す際にはテンプレート引数として明示的に指定する必要があります。

例外

例外送出 std::bad_array_new_length 条件: n > std:: numeric_limits < std:: size_t > :: max ( ) / sizeof ( U ) の場合; また resource ( ) - > allocate の呼び出しによって送出される例外もあり得る。

関連項目

基盤リソースからアライメントされた生メモリを割り当てる
(公開メンバ関数)
(C++20)
オブジェクトを割り当てて構築する
(公開メンバ関数)
メモリを割り当てる
(公開メンバ関数)
[static]
アロケータを使用して未初期化ストレージを割り当てる
( std::allocator_traits<Alloc> の公開静的メンバ関数)
メモリを割り当てる
( std::pmr::memory_resource の公開メンバ関数)