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