std::pmr::monotonic_buffer_resource::monotonic_buffer_resource

来自cppreference.com
 
 
动态内存管理
智能指针
(C++11)
(C++11)
(C++11)
(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++11)(C++23 前)
杂项
(C++20)
(C++11)
(C++11)
C 库
低层内存管理
 
 
monotonic_buffer_resource();
(1) (C++17 起)
explicit monotonic_buffer_resource(std::pmr::memory_resource* upstream);
(2) (C++17 起)
explicit monotonic_buffer_resource(std::size_t initial_size);
(3) (C++17 起)
monotonic_buffer_resource(std::size_t initial_size,
                          std::pmr::memory_resource* upstream);
(4) (C++17 起)
monotonic_buffer_resource(void* buffer, std::size_t buffer_size);
(5) (C++17 起)
monotonic_buffer_resource(void* buffer, std::size_t buffer_size,
                          std::pmr::memory_resource* upstream);
(6) (C++17 起)
monotonic_buffer_resource(const monotonic_buffer_resource&) = delete;
(7) (C++17 起)

构造 monotonic_buffer_resource 。不接收上游 memory_resource 指针的构造函数以 std::pmr::get_default_resource 为 memory_resource 。

1-2) 设置当前缓冲区为空,下个缓冲区大小为实现定义大小。
3-4) 设置当前缓冲区为空,下个缓冲区大小为不小于 initial_size 的值。
5-6) 设置当前缓冲区buffer下个缓冲区大小buffer_size (但不小于 1 )。然后以实现定义的增长因子(不必是整数)增加下个缓冲区大小
7) 复制构造函数被删除。

参数

upstream - 要使用的上游内存资源;必须指向合法的 memory_resource
initial_size - 要分配的首个缓冲区的最小大小;必须大于零
buffer - 使用的初始缓冲区
buffer_size - 初始缓冲区的大小;不能大于 buffer 的字节数