23 General utilities library [utilities]

23.12 Memory resources [mem.res]

23.12.6 Class monotonic_­buffer_­resource [mem.res.monotonic.buffer]

23.12.6.1 monotonic_­buffer_­resource constructor and destructor [mem.res.monotonic.buffer.ctor]

explicit monotonic_buffer_resource(memory_resource* upstream); monotonic_buffer_resource(size_t initial_size, memory_resource* upstream);

Requires: upstream должен быть адресом допустимого ресурса памяти. initial_­size, если указано, должно быть больше нуля.

Effects: Устанавливает upstream_­rsrc на upstream и current_­buffer на nullptr. Если initial_­size указано, устанавливается next_­buffer_­size как минимум initial_­size; в противном случае устанавливает next_­buffer_­size к реализации определенных размеров.

monotonic_buffer_resource(void* buffer, size_t buffer_size, memory_resource* upstream);

Requires: upstream должен быть адресом допустимого ресурса памяти. buffer_­size не должно быть больше, чем количество байтов в buffer.

Effects: Устанавливается upstream_­rsrc в upstream, current_­buffer в bufferи next_­buffer_­size в buffer_­size (но не менее 1), затем увеличивается next_­buffer_­size на коэффициент роста, определяемый реализацией (который не обязательно должен быть целым).

~monotonic_buffer_resource();

Effects: Звонки release().