std::experimental::pmr::resource_adaptor, std::pmr::experimental::resource_adaptor
| |
(库基础 TS) | |
| |
(库基础 TS) | |
别名模版 resource_adaptor 将分配器类型 Allocator 与 memory_resource 接口适配。在实际适配前(用 resource-adaptor-imp 类模板)将分配器重绑定到 char 类型,故适配同一分配器的模板特化总是生成同一类型,无关乎分配器模板原先实例化所用的值类型。
|
|
(库基础 TS) (库基础 TS v3 前) |
|
|
(库基础 TS v3) |
resource-adaptor-imp 是类模板,成员描述如下。名称 resource-adaptor-imp 仅为阐释用途,而非强制规定。
除了符合分配器 (Allocator) 要求, Alloc 还必须额外满足下列要求:
std::allocator_traits<Alloc>::pointer应当等同于Alloc::value_type*。std::allocator_traits<Alloc>::const_pointer应当等同于Alloc::value_type const*。std::allocator_traits<Alloc>::void_pointer应当等同于void*。std::allocator_traits<Alloc>::const_void_pointer应当等同于void const*。
目录
resource-adaptor-imp 的成员类型
| 成员类型 | 定义 |
allocator_type
|
Alloc
|
resource-adaptor-imp 的成员函数
resource-adaptor-imp::resource-adaptor-imp
| |
(1) | (库基础 TS) |
| |
(2) | (库基础 TS) |
| |
(3) | (库基础 TS) |
| |
(4) | (库基础 TS) |
| |
(5) | (库基础 TS) |
other 所包装的分配器复制构造被包装分配器。other 所包装的分配器移动构造被包装分配器。a2 初始化被包装分配器。std::move(a2) 初始化被包装分配器。参数
| other | - | 复制或移动来源的另一 resource-adaptor-imp 对象
|
| a2 | - | 复制或移动来源的另一 Alloc 对象
|
resource-adaptor-imp::get_allocator
| |
(库基础 TS) | |
返回被包装分配器的副本。
resource-adaptor-imp::operator=
| |
(库基础 TS) | |
默认化的复制赋值运算符。从 other 的被包装分配器复制赋值被包装分配器。
resource-adaptor-imp::do_allocate
| |
(库基础 TS) | |
用被包装分配器的 allocate 成员函数分配内存。
resource-adaptor-imp::do_deallocate
| |
(库基础 TS) | |
用被包装分配器的 deallocate 成员函数解分配 p 所指向的存储。
p 必须已经用比较等于被包装分配器的分配器的 allocate 成员函数分配,而且之后必须未被解分配。
resource-adaptor-imp::do_is_equal
| |
(库基础 TS) | |
令 p 为 dynamic_cast<const /*resource-adaptor-imp*/*>(&other)。若 p 为空指针值则返回 false 。否则返回用 operator== 比较 *p 和 *this 所包装的分配器的结果。