std::pmr::unsynchronized_pool_resource
Материал из cppreference.com
Определено в заголовочном файле <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 (public функция-элемент) | |
[virtual] |
уничтожает unsynchronized_pool_resource , освобождая всю выделенную память (virtual public функция-элемент) |
operator= [удалено] |
оператор присваивания копированием удалён. unsynchronized_pool_resource нельзя присвоить копированием (public функция-элемент) |
Открытые функции-элементы | |
освобождает всю выделенную память (public функция-элемент) | |
возвращает указатель на вышестоящий ресурс памяти (public функция-элемент) | |
возвращает параметры, управляющие поведением пула этого ресурса (public функция-элемент) | |
Защищённые функции-элементы | |
[virtual] |
выделяет память (virtual protected функция-элемент) |
[virtual] |
возвращает память в пул (virtual protected функция-элемент) |
[virtual] |
сравнивает на равенство с другим std::pmr::memory_resource (virtual protected функция-элемент) |