Namespaces
Variants

std::pmr::polymorphic_allocator<T>:: allocate

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)
T * allocate ( std:: size_t n ) ;
(C++17以降)

基盤となるメモリリソースを使用して、型 T n 個のオブジェクトに対するストレージを割り当てます。 return static_cast < T * > ( resource ( ) - > allocate ( n * sizeof ( T ) , alignof ( T ) ) ) ; と等価です。

目次

パラメータ

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

戻り値

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

例外

例外送出 std::bad_array_new_length 条件: n > std:: numeric_limits < std:: size_t > :: max ( ) / sizeof ( T ) の場合; また resource ( ) - > allocate の呼び出しで送出される例外も送出する可能性がある。

欠陥報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 3038 C++17 allocate が誤ったサイズのストレージを割り当てる可能性あり length_error を送出するように変更
LWG 3237 C++17 allocate が送出する例外が std::allocator::allocate と一貫性がなかった 一貫性を持つように修正

関連項目

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