Standard library header <new>
From cppreference.net
此头文件属于 动态内存管理 库的一部分,特别提供了 底层内存管理 功能。
类 |
||
|
内存分配失败时抛出的异常
(类) |
||
|
(C++11)
|
分配长度无效的数组时抛出的异常
(类) |
|
|
(C++17)
|
用于将对齐方式传递给对齐感知分配和释放函数的类型
(枚举) |
|
类型 |
||
|
新处理函数的函数指针类型
(类型定义) |
||
标签 |
||
|
用于选择不抛异常的
分配函数
的标签
(标签) |
||
|
用于选择
operator delete
的销毁删除重载的标签
(标签) |
||
常量 |
||
|
避免伪共享的最小偏移量
促进真共享的最大偏移量 (常量) |
||
函数 |
||
|
分配函数
(函数) |
||
|
释放函数
(函数) |
||
|
(C++11)
|
获取当前的新处理函数
(函数) |
|
|
注册新处理函数
(函数) |
||
|
(C++17)
|
指针优化屏障
(函数模板) |
|
概要
// 所有独立实现 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 <a href="../memory
类 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; }; }