std::scoped_allocator_adaptor
来自cppreference.com
|
|
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
| 在头文件 <scoped_allocator> 中定义
|
||
| template< class OuterAlloc, class... InnerAlloc > class scoped_allocator_adaptor : public OuterAlloc; |
(C++11 起) | |
std::scoped_allocator_adaptor类模板是一个分配器,它可以用来与多级容器(矢量组的地图等的元组列表)。它是实例化一个外部分配器的类型OuterAlloc和零个或多个内部分配器类型InnerAlloc...。直接构造一个scoped_allocator_adaptor使用的容器OuterAlloc分配的元素,但如果一个元素本身是一个容器,它使用的内部分配器。该容器中的元素,如果他们是自己的容器,使用所述第二内的分配器,等,如果有更多的水平到容器上有比内的分配器,被再利用于所有进一步的嵌套容器的最后内分配器.原文:
The
std::scoped_allocator_adaptor class template is an allocator which can be used with multilevel containers (vector of sets of lists of tuples of maps, etc). It is instantiated with one outer allocator type OuterAlloc and zero or more inner allocator types InnerAlloc.... A container constructed directly with a scoped_allocator_adaptor uses OuterAlloc to allocate its elements, but if an element is itself a container, it uses the first inner allocator. The elements of that container, if they are themselves containers, use the second inner allocator, etc. If there are more levels to the container than there are inner allocators, the last inner allocator is reused for all further nested containers.scoped_allocator_adaptor为目的,如果下一个内分配器是A,任何一类Tstd::uses_allocator<T,A>::value == true参与在递归,就好像它是一个容器。此外,std::pair被视为容器的具体重载scoped_allocator_adaptor::construct.原文:
For the purpose of
scoped_allocator_adaptor, if the next inner allocator is A, any class T for which std::uses_allocator<T,A>::value == true participates in the recursion as if it was a container. Additionally, std::pair is treated as such a container by specific overloads of scoped_allocator_adaptor::construct.典型的实现持有的
std::scoped_allocator_adaptor<InnerAllocs...>作为一个成员对象的一个实例.原文:
Typical implementation holds an instance of a
std::scoped_allocator_adaptor<InnerAllocs...> as a member object.目录 |
[编辑] 会员类型
| 类型
|
Definition |
outer_allocator_type
|
OuterAlloc |
inner_allocator_type
|
scoped_allocator_adaptor<InnerAllocs...> or, if sizeof...(InnerAllocs) == 0, scoped_allocator_adaptor<OuterAlloc> |
value_type
|
std::allocator_traits<OuterAlloc>::value_type |
size_type
|
std::allocator_traits<OuterAlloc>::size_type |
difference_type
|
std::allocator_traits<OuterAlloc>::difference_type |
pointer
|
std::allocator_traits<OuterAlloc>::pointer |
const_pointer
|
std::allocator_traits<OuterAlloc>::const_pointer |
void_pointer
|
std::allocator_traits<OuterAlloc>::void_pointer |
const_void_pointer
|
std::allocator_traits<OuterAlloc>::const_void_pointer |
propagate_on_container_copy_assignment
| |
propagate_on_container_move_assignment
| |
propagate_on_container_swap
| |
rebind
| |
[编辑] 成员函数
| 创建一个新的scoped_allocator_adaptor实例 原文: creates a new scoped_allocator_adaptor instance (公共成员函数) | |
| 解构一个scoped_allocator_adaptor实例 原文: destructs a scoped_allocator_adaptor instance (公共成员函数) | |
| 获得 inner_allocator参考原文: obtains an inner_allocator reference(公共成员函数) | |
| 获得 outer_allocator参考原文: obtains an outer_allocator reference(公共成员函数) | |
| 分配未初始化的存储,使用外部的分配器 原文: allocates uninitialized storage using the outer allocator (公共成员函数) | |
| 分配使用外部分配器的存储 原文: allocates storage using the outer allocator (公共成员函数) | |
| returns the largest allocation size supported by the outer allocator (公共成员函数) | |
| 构造一个对象分配的存储,传递给它的构造函数(如适用)内的分配器 原文: constructs an object in allocated storage, passing the inner allocator to its constructor if appropriate (公共成员函数) | |
| 分配的存储desrtucts对象 原文: desrtucts an object in allocated storage (公共成员函数) | |
| 的状态复制的scoped_allocator_adaptor和所有的分配器 原文: copies the state of scoped_allocator_adaptor and all its allocators (公共成员函数) | |
[编辑] 非成员函数
| 比较两个scoped_allocator_adaptor情况 原文: compares two scoped_allocator_adaptor instances (公共成员函数) | |
[编辑] 另请参阅
| (C++11) |
提供分配器类型的信息 原文: provides information about allocator types (类模板) |
| (C++11) |
检查如果指定的类型支持使用分配器建设的 原文: checks if the specified type supports uses-allocator construction (类模板) |
| the default allocator (类模板) | |