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 起)

n 个类型为 T 的对象分配存储空间,使用底层内存资源。等效于 return static_cast < T * > ( resource ( ) - > allocate ( n * sizeof ( T ) , alignof ( T ) ) ) ;

目录

参数

n - 要为分配存储空间的对象数量

返回值

指向已分配存储的指针。

异常

n > std:: numeric_limits < std:: size_t > :: max ( ) / sizeof ( T ) 时抛出 std::bad_array_new_length ;也可能抛出调用 resource ( ) - > allocate 时抛出的任何异常。

缺陷报告

下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。

缺陷报告 适用范围 发布时的行为 修正后的行为
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 的公开成员函数)