Standard library header <new>
From cppreference.net
Этот заголовок является частью библиотеки управления динамической памятью и в частности предоставляет функции низкоуровневого управления памятью .
Классы |
||
|
исключение, выбрасываемое при неудачном выделении памяти
(класс) |
||
|
(C++11)
|
исключение, выбрасываемое при выделении массива с недопустимой длиной
(класс) |
|
|
(C++17)
|
тип, используемый для передачи выравнивания в функции выделения и освобождения памяти с учетом выравнивания
(перечисление) |
|
Типы |
||
|
тип указателя на функцию обработчика new
(typedef) |
||
Теги |
||
|
тег, используемый для выбора нетерминирующей
функции выделения
(тег) |
||
|
тег, используемый для выбора перегрузок destroying-delete
operator delete
(тег) |
||
Константы |
||
|
минимальное смещение для избежания ложного разделения
максимальное смещение для обеспечения истинного разделения (константа) |
||
Функции |
||
|
функции выделения памяти
(функция) |
||
|
функции освобождения памяти
(функция) |
||
|
(C++11)
|
получает текущий обработчик new
(функция) |
|
|
регистрирует новый обработчик
(функция) |
||
|
(C++17)
|
барьер оптимизации указателей
(шаблон функции) |
|
Синопсис
// все независимые (freestanding) namespace std { // ошибки выделения памяти class bad_alloc; class bad_array_new_length; struct destroying_delete_t { explicit destroying_delete_t() = default; }; inline constexpr destroying_delete_t destroying_delete{}; // глобальный контроль operator new enum class align_val_t : size_t { }; struct nothrow_t { explicit nothrow_t() = default; }; extern const nothrow_t nothrow; using new_handler = void (*)(); new_handler get_new_handler() noexcept; new_handler set_new_handler(new_handler new_p) noexcept; // барьер оптимизации указателей template<class T> constexpr T* launder(T* p) noexcept; // размер аппаратного вмешательства inline constexpr size_t hardware_destructive_interference_size = /* определяемый реализацией */; inline constexpr size_t hardware_constructive_interference_size = /* определяемый реализацией */; } // выделение и освобождение памяти void* operator new(std::size_t size); void* operator new(std::size_t size, std::align_val_t alignment); void* operator new(std::size_t size, const std::nothrow_t&) noexcept; void* operator new(std::size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept; void operator delete(void* ptr) noexcept; void operator delete(void* ptr, std::size_t size) noexcept; void operator delete(void* ptr, std::align_val_t alignment) noexcept; void operator delete(void* ptr, std::size_t size, std::align_val_t alignment) noexcept; void operator delete(void* ptr, const std::nothrow_t&) noexcept; void operator delete(void* ptr, std::align_val_t alignment, const std::nothrow_t&) noexcept; void* operator new[](std::size_t size); void* operator new[](std::size_t size, std::align_val_t alignment); void* operator new[](std::size_t size, const std::nothrow_t&) noexcept; void* operator new[](std::size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept; void operator delete[](void* ptr) noexcept; void operator delete[](void* ptr, std::size_t size) noexcept; void operator delete[](void* ptr, std::align_val_t alignment) noexcept; void operator delete[](void* ptr, std::size_t size, std::align_val_t alignment) noexcept; void operator delete[](void* ptr, const std::nothrow_t&) noexcept; void operator delete[](void* ptr, std::align_val_t alignment, const std::nothrow_t&) noexcept; constexpr void* operator new(std::size_t size, void* ptr) noexcept; constexpr void* operator new[](std::size_t size, void* ptr) noexcept; void operator delete(void* ptr, void*) noexcept; void operator delete[](void* ptr, void*) noexcept;
Класс std::bad_alloc
namespace std { class bad_alloc : public exception { public: // см. описание для спецификации специальных функций-членов constexpr const char* what() const noexcept override; }; }
Класс std::bad_array_new_length
namespace std { class bad_array_new_length : public bad_alloc { public: // см. описание для спецификации специальных функций-членов constexpr const char* what() const noexcept override; }; }