# std::pmr::monotonic_buffer_resource::monotonic_buffer_resource

< cpp‎ | memory‎ | monotonic buffer resource

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` 的字节数