Пространства имён
Варианты
Действия

std::pmr::unsynchronized_pool_resource

Материал из cppreference.com
< cpp‎ | memory
 
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



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