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