表示分配器嵌套。
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
备注
模板选件类封装一个或多个分配器嵌套。每个这样选件类具有类型 outer_allocator_type,Outer的同义词一个最外面的分配器,是 scoped_allocator_adaptor 对象的公共基。Outer 用来指定容器将使用的内存。可以获取对该分配程序基对象是通过调用 outer_allocator。
嵌套的其余部分具有类型 inner_allocator_type。内部分配器用于将元素分配的内存是在容器中。可以获取对该类型中存储的对象通过调用 inner_allocator。如果 Inner... 不为空,inner_allocator_type 具有类型 scoped_allocator_adaptor<Inner...;AMP_gt;,并且,inner_allocator 指定一个成员对象。否则,inner_allocator_type 具有类型 scoped_allocator_adaptor<Outer;AMP_gt;,并且,inner_allocator 指定整个对象。
嵌套的行为,就象它具有任意深度,复制其最里层中封装的分配器根据需要。
不可见接口来帮助部分以描述此模板选件类行为的几个概念。一个 最外面的分配器 干预对的所有调用构造和销毁方法。它是有效的递归函数 OUTERMOST(X)定义的,OUTERMOST(X) 是之一。
如果 X.outer_allocator() 正确,则 OUTERMOST(X) 是 OUTERMOST(X.outer_allocator())。
否则,OUTERMOST(X) 为 X。
三个类型为博览会定义:
类型 |
说明 |
---|---|
Outermost |
OUTERMOST(*this) 的类型。 |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
构造函数
名称 |
说明 |
---|---|
构造 scoped_allocator_adaptor 对象。 |
Typedef
名称 |
说明 |
---|---|
const_pointer |
此类型是与该分配器 Outerconst_pointer 的同义词。 |
const_void_pointer |
此类型是与该分配器 Outerconst_void_pointer 的同义词。 |
difference_type |
此类型是与该分配器 Outerdifference_type 的同义词。 |
inner_allocator_type |
此类型是嵌套适配器 scoped_allocator_adaptor<Inner...;AMP_gt;的类型的同义词。 |
outer_allocator_type |
此类型是基分配器 Outer的类型的同义词。 |
pointer |
此类型是 pointer 的同义词与该分配器 Outer。 |
propagate_on_container_copy_assignment |
该类型应用,仅当 Outer_traits::propagate_on_container_copy_assignment 将或 inner_allocator_type::propagate_on_container_copy_assignment 适用。 |
propagate_on_container_move_assignment |
该类型应用,仅当 Outer_traits::propagate_on_container_move_assignment 将或 inner_allocator_type::propagate_on_container_move_assignment 适用。 |
propagate_on_container_swap |
该类型应用,仅当 Outer_traits::propagate_on_container_swap 将或 inner_allocator_type::propagate_on_container_swap 适用。 |
size_type |
此类型是 size_type 的同义词与该分配器 Outer。 |
value_type |
此类型是 value_type 的同义词与该分配器 Outer。 |
void_pointer |
此类型是 void_pointer 的同义词与该分配器 Outer。 |
结构
名称 |
说明 |
---|---|
定义类型 Outer::rebind<Other;AMP_gt;::other 作为 scoped_allocator_adaptor<Other, Inner...;AMP_gt;的同义词。 |
方法
名称 |
说明 |
---|---|
使用 Outer 分配器,分配内存。 |
|
构造对象。 |
|
通过使用外部分配器,释放对象。 |
|
销毁一个指定的对象。 |
|
检索对类型 inner_allocator_type中的对象。 |
|
确定可由外层分配器分配的对象的最大数。 |
|
检索对类型 outer_allocator_type中的对象。 |
|
scoped_allocator_adaptor::select_on_container_copy_construction 方法 |
通过调用初始化的每个单元的分配器对象创建新的 scoped_allocator_adaptor 对象每个相应的分配器的 select_on_container_copy_construction。 |
要求
标头: <scoped_allocator>
命名空间: std