23 General utilities library [utilities]

23.12 Memory resources [mem.res]

23.12.4 Access to program-wide memory_­resource objects [mem.res.global]

memory_resource* new_delete_resource() noexcept;

Returns: Указатель на объект статической продолжительности типа, производного от memory_­resource этого, может служить ресурсом для выделения памяти с помощью ​::​operator new и ​::​operator delete. При каждом вызове этой функции возвращается одно и то же значение. Для возвращаемого значения p и ресурс памяти r, p->is_­equal(r) возвращается &r == p.

memory_resource* null_memory_resource() noexcept;

Returns: Указатель на объект статической продолжительности типа, производного от memory_­resource которого allocate() всегда выбрасывает bad_­alloc и для которого deallocate() не действует. При каждом вызове этой функции возвращается одно и то же значение. Для возвращаемого значения p и ресурс памяти r, p->is_­equal(r) возвращается &r == p.

Это default memory resource pointer указатель на ресурс памяти, который используется некоторыми средствами, когда явный ресурс памяти не предоставляется через интерфейс. Его начальное значение - это возвращаемое значение new_­delete_­resource().

memory_resource* set_default_resource(memory_resource* r) noexcept;

Effects: Если не r равно нулю, устанавливает значение указателя ресурса памяти по умолчанию на r, в противном случае устанавливает указатель ресурса памяти по умолчанию на new_­delete_­resource().

Postconditions: get_­default_­resource() == r.

Returns: Предыдущее значение указателя ресурса памяти по умолчанию.

Remarks: Вызов set_­default_­resource и get_­default_­resource функция не влечет за собой гонку данных. Вызов к set_­default_­resource функции будет синхронизировать с последующими вызовами set_­default_­resource и get_­default_­resource функциями.

memory_resource* get_default_resource() noexcept;

Returns: Текущее значение указателя ресурса памяти по умолчанию.