标准库标头 <new>

来自cppreference.com
< cpp‎ | header


 
 
标准库头
 

此头文件是动态内存管理库的一部分,特别是它提供低层内存管理特性。

目录

内存分配失败时抛出的异常
(类)[编辑]
分配有非法长度的数组时抛出的异常
(类)[编辑]
用于向带对齐分配及解分配函数传递对齐值的类型
(枚举)[编辑]

类型

new 处理函数的函数指针类型
(typedef)[编辑]

标签

用于选择不抛出分配函数 的标签
(常量)[编辑]
用于选择 operator delete 的销毁 delete 重载的标签
(标签)[编辑]

常量

避免假共享的最小偏移
促使真共享的最大偏移
(常量)[编辑]

函数

分配函数
(函数)[编辑]
解分配函数
(函数)[编辑]
获得当前的 new 处理函数
(函数)[编辑]
注册一个 new 处理函数
(函数)[编辑]
(C++17)
指针优化屏障
(函数模板)[编辑]

[编辑]概要

namespace std {// 存储分配错误class bad_alloc;class bad_array_new_length;   struct destroying_delete_t {explicit destroying_delete_t()=default;};inlineconstexpr destroying_delete_t destroying_delete{};   // 全局 operator new 控制enumclass align_val_t : size_t {};   struct nothrow_t {explicit nothrow_t()=default;};externconst 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;   // 硬件干涉大小inlineconstexpr size_t hardware_destructive_interference_size =/* 由实现定义 */;inlineconstexpr 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, conststd::nothrow_t&)noexcept;void*operator new(std::size_t size, std::align_val_t alignment, conststd::nothrow_t&)noexcept;   voidoperator delete(void* ptr)noexcept;voidoperator delete(void* ptr, std::size_t size)noexcept;voidoperator delete(void* ptr, std::align_val_t alignment)noexcept;voidoperator delete(void* ptr, std::size_t size, std::align_val_t alignment)noexcept;voidoperator delete(void* ptr, conststd::nothrow_t&)noexcept;voidoperator delete(void* ptr, std::align_val_t alignment, conststd::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, conststd::nothrow_t&)noexcept;void*operator new[](std::size_t size, std::align_val_t alignment, conststd::nothrow_t&)noexcept;   voidoperator delete[](void* ptr)noexcept;voidoperator delete[](void* ptr, std::size_t size)noexcept;voidoperator delete[](void* ptr, std::align_val_t alignment)noexcept;voidoperator delete[](void* ptr, std::size_t size, std::align_val_t alignment)noexcept;voidoperator delete[](void* ptr, conststd::nothrow_t&)noexcept;voidoperator delete[](void* ptr, std::align_val_t alignment, conststd::nothrow_t&)noexcept;   constexprvoid*operator new(std::size_t size, void* ptr)noexcept;constexprvoid*operator new[](std::size_t size, void* ptr)noexcept;voidoperator delete(void* ptr, void*)noexcept;voidoperator delete[](void* ptr, void*)noexcept;
close