std::pmr::polymorphic_allocator

定义于头文件 <memory_resource>
template< class T >
class polymorphic_allocator;
(C++17 起)

类模板 std::pmr::polymorphic_allocator 是一个分配器 (Allocator) ,其分配行为依赖其构造所用的 memory_resource 。从而 polymorphic_allocator 的不同实例能展现出完全不同的分配行为。这种运行时多态允许使用 polymorphic_allocator 的对象表现如同它们在运行时使用不同的分配器类型,尽管静态分配器类型相同。

目录

成员类型

成员类型 定义
value_type T

成员函数

构造一个 polymorphic_allocator
(公开成员函数)
(析构函数)
(隐式声明)
隐式声明的析构函数
(公开成员函数)
operator=
[删除]
复制赋值运算符被删除
(公开成员函数)
公开成员函数
分配内存
(公开成员函数)
解分配内存
(公开成员函数)
在分配的存储上构造一个对象
(公开成员函数)
销毁处于分配的内存的对象
(公开成员函数)
为容器的复制构造函数的使用创建一个新的 polymorphic_allocator
(公开成员函数)
返回指向底层 memory_resource 的指针
(公开成员函数)

非成员函数

比较二个 polymorphic_allocator
(函数)

注意

polymorphic_allocator 在容器复制赋值、移动赋值或交换时不传播。结果是,使用 polymorphic_allocator 的容器的移动赋值可能抛出,且交换二个使用 polymorphic_allocator ,而所用分配器比较不相等的容器导致未定义行为。

参阅

封装内存资源的类的抽象接口
(类)

版本历史

  • (当前 | 先前) 2017年5月4日 (四) 08:52Fruderica讨论 | 贡献. . (1,918字节) (+1,918). . (以“{{cpp/memory/pmr/title|polymorphic_allocator}} {{cpp/memory/polymorphic_allocator/navbar}} {{ddcl|header=memory_resource | since=c++17 | template< class T > class po...”为内容创建页面)