std::pmr:: unsynchronized_pool_resource
From cppreference.net
C++
Memory management library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::pmr::unsynchronized_pool_resource
| Public member functions | ||||
| Protected member functions | ||||
|
Определено в заголовочном файле
<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
(публичная функция-член) |
|
|
[virtual]
|
уничтожает
unsynchronized_pool_resource
, освобождая всю выделенную память
(виртуальная публичная функция-член) |
|
operator=
[deleted]
|
оператор копирующего присваивания удален.
unsynchronized_pool_resource
не поддерживает копирующее присваивание
(публичная функция-член) |
Публичные функции-члены |
|
|
освобождает всю выделенную память
(публичная функция-член) |
|
|
возвращает указатель на вышестоящий ресурс памяти
(публичная функция-член) |
|
|
возвращает опции, управляющие поведением пула данного ресурса
(публичная функция-член) |
|
Защищенные функции-члены |
|
|
[virtual]
|
выделяет память
(виртуальная защищенная функция-член) |
|
[virtual]
|
возвращает память в пул
(виртуальная защищенная функция-член) |
|
[virtual]
|
сравнивает на равенство с другим
std::pmr::memory_resource
(виртуальная защищенная функция-член) |