std::pmr::polymorphic_allocator
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    |   定义于头文件  <memory_resource>
  | 
||
|   template< class T > class polymorphic_allocator;  | 
 (C++17 起)  (C++20 前)  | 
|
|   template< class T = std::byte > class polymorphic_allocator;  | 
(C++20 起) | |
类模板 std::pmr::polymorphic_allocator 是一个分配器 (Allocator) ,展现出取决于其构造所用的 std::pmr::memory_resource 的不同的分配行为。因为 memory_resource 使用运行时多态管理分配器,不同的以 polymorphic_allocator 为其静态分配器类型的分配器可互操作,但能表现为如同它们拥有不同的分配器类型。
polymorphic_allocator 的所有特化均满足分配器完整性要求。
成员类型
| 成员类型 | 定义 | 
 value_type
 | 
  T
 | 
成员函数
  构造一个 polymorphic_allocator (公开成员函数)  | |
|    (析构函数) (隐式声明)  | 
  隐式声明的析构函数  (公开成员函数)  | 
|    operator= [被删除]  | 
   复制赋值运算符被删除  (公开成员函数)  | 
 公开成员函数 | |
|    分配内存  (公开成员函数)  | |
|    解分配内存   (公开成员函数)  | |
|    在分配的存储上构造一个对象  (公开成员函数)  | |
|    (C++20 中弃用)  | 
   销毁处于分配的内存的对象  (公开成员函数)  | 
|    (C++20)  | 
  从底层资源分配未处理的对齐内存  (公开成员函数)  | 
|    (C++20)  | 
  释放从 allocate_bytes 获得的未处理内存 (公开成员函数)  | 
|    (C++20)  | 
  分配适合单个对象或数组的未处理内存  (公开成员函数)  | 
|    (C++20)  | 
  释放由 allocate_object 获得的未处理内存 (公开成员函数)  | 
|    (C++20)  | 
  分配并创建对象  (公开成员函数)  | 
|    (C++20)  | 
  销毁并解分配对象  (公开成员函数)  | 
   为容器的复制构造函数的使用创建一个新的 polymorphic_allocator (公开成员函数)  | |
|    返回指向底层 memory_resource 的指针  (公开成员函数)  | |
非成员函数
|    (C++20 中移除)  | 
  比较二个 polymorphic_allocator (函数)  | 
注解
polymorphic_allocator 在容器复制赋值、移动赋值或交换时不传播。结果是,使用 polymorphic_allocator 的容器的移动赋值可能抛出,且交换二个使用 polymorphic_allocator ,而所用分配器比较不相等的容器导致未定义行为。
参阅
|    (C++17)  | 
   一个抽象接口,用于各种封装内存资源的类  (类)  |