Adr*_*ire 19 c++ allocator c++17
该标准C++17
包括一个新的命名空间,pmr
包括一组以名称分组的类memory_resource
.
在网上搜索后,我发现很少有关于它的庸俗信息,直接后果是这个问题:
背后的主要思想pmr
是pmr::memory_resource
什么?
详细说明问题,我头脑中的一些问号是:
allocator
?allocator
提供给容器构造函数的运行时?(例如用于测试目的)语境:
在创建memory pool
分配器的过程中,我找到了有关此命名空间的信息.读名字pool_options
或者polymorphic_allocator
引起我的注意.
相关问题:
A polymorphic_allocator
旨在让您拥有一个在运行时动态确定其行为的分配器.
创建a的唯一方法polymorphic_allocator
是:
默认构造,在这种情况下它使用std::pmr::get_default_resource()
返回值,即a memory_resource*
.
通过它memory_resource*
.
从另一个复制polymorphic_allocator
.
因此,a的定制点polymorphic_allocator
是创建一个继承memory_resource
并实现其方法的类,或者使用memory_resource
在std::pmr
(un
)中定义的预先声明的s之一synchronized_pool_resource
以及monotonic_buffer_resource
作为类型或std::pmr::new_delete_resource()
/ std::pmr::null_memory_resource()
.
假设您希望使用与5中提供的策略不同的策略来分配内存std::pmr
.然后创建一个继承自的类std::pmr::memory_resource
,并将其传递给使用a的容器polymorphic_allocator
.