- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
标准 C++17
包含一个新的命名空间 pmr
,其中包括一组以 memory_resource
的名称分组的类。
在网上搜了一下,发现很少有关于它的低俗信息,直接结果就是这个问题:
pmr
,尤其是pmr::memory_resource
背后的主要思想是什么?
把问题详细一点,我脑子里的一些问号是:
allocator
有什么区别?allocator
? (例如用于测试目的)上下文:
为了创建 memory pool
分配器,我找到了有关此命名空间的信息。阅读像 pool_options
或 polymorphic_allocator
这样的名称引起了我的注意。
相关问题:
最佳答案
polymorphic_allocator
旨在让您拥有一个其行为在运行时动态确定的分配器。
创建polymorphic_allocator
的唯一方法是:
默认构造,此时使用std::pmr::get_default_resource()
返回值,即memory_resource*
。
传递一个memory_resource*
。
从另一个 polymorphic_allocator
复制。
因此,polymorphic_allocator
的定制点是创建一个继承自 memory_resource
的类并实现其方法,或使用其中一种在 std::pmr
中定义的预先声明的 memory_resource
:(un
)synchronized_pool_resource
和 monotonic_buffer_resource
作为类型,或 std::pmr::new_delete_resource()
/std::pmr::null_memory_resource()
。
假设您希望使用不同于 std::pmr
中提供的 5 的策略分配内存。然后创建一个继承自 std::pmr::memory_resource
的类,并将其传递给使用 polymorphic_allocator
的容器。
关于c++ - `memory_resource` 的用途和用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44799321/
标准 C++17 包含一个新的命名空间 pmr,其中包括一组以 memory_resource 的名称分组的类。 在网上搜了一下,发现很少有关于它的低俗信息,直接结果就是这个问题: pmr,尤其是pm
C++17 标准说: [mem.poly.allocator.ctor] polymorphic_allocator(memory_resource* r); Requires: r is non-n
我是一名优秀的程序员,十分优秀!