命名空间
变体
操作

std::pmr::unsynchronized_pool_resource

来自 cppreference.cn
< cpp‎ | memory
 
 
内存管理库
(仅为说明目的*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
内存资源
pmr::unsynchronized_pool_resource
(C++17)
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化存储
(在 C++20 前弃用*)
(在 C++20 前弃用*)
(在 C++20 前弃用*)
显式生命周期管理
 
 
定义于头文件 <memory_resource>
class unsynchronized_pool_resource : public std::pmr::memory_resource;
(自 C++17 起)

std::pmr::unsynchronized_pool_resource 是一个通用的内存资源类,具有以下属性

  • 它拥有已分配的内存,并在销毁时释放它,即使某些已分配的块没有调用 deallocate
  • 它由一系列组成,这些池服务于不同块大小的请求。每个池管理一系列,然后将这些块划分为大小均匀的块。
  • do_allocate 的调用被分派到服务于可容纳请求大小的最小块的池。
  • 池中内存耗尽会导致该池的下一个分配请求从上游分配器分配额外的内存块来补充池。获得的块大小呈几何级数增长。
  • 超过最大块大小的分配请求直接由上游分配器服务。
  • 可以通过将 std::pmr::pool_options 结构体传递给其构造函数来调整最大块大小和最大块大小。

unsynchronized_pool_resource 不是线程安全的,不能从多个线程同时访问;如果需要从多个线程访问,请使用 synchronized_pool_resource

[编辑] 成员函数

构造一个 unsynchronized_pool_resource
(公共成员函数) [编辑]
[虚函数]
销毁一个 unsynchronized_pool_resource,释放所有已分配的内存
(虚公共成员函数) [编辑]
operator=
[已删除]
拷贝赋值运算符已删除。 unsynchronized_pool_resource 不可拷贝赋值
(公共成员函数) [编辑]
公共成员函数
释放所有已分配的内存
(公共成员函数) [编辑]
返回指向上游内存资源的指针
(公共成员函数) [编辑]
返回控制此资源池化行为的选项
(公共成员函数) [编辑]
受保护的成员函数
[虚函数]
分配内存
(虚保护成员函数) [编辑]
[虚函数]
将内存返回到池
(虚保护成员函数) [编辑]
[虚函数]
与另一个 std::pmr::memory_resource 比较是否相等
(虚保护成员函数) [编辑]