当前头文件是语言支持库(Language support library)中的 动态内存管理 主题中的部分内容。该头文件定义了几个用来管理程序中动态存储的分配的函数,还定义了一些组件用来报告存储管理中的相关错误。

语言支持库(参考手册) ​语言支持库(标准)

  • operator new内存分配操作符
    operator new[]
    operator delete内存释放操作符
    operator delete[]
    get_new_handler C++11获得当前 new 处理例程
    set_new_handler设置当前 new 处理例程
  • bad_alloc 内存分配失败时所抛出的异常
    bad_array_new_length C++11 当分配一个数组的内存且传入了无效的长度时所抛出的异常
    nothrow_t 这是一个标签类型(Tag type),用来选择一个无异常抛出(Non-throwing)的内存分配函数重载
  • new_handler new 处理例程的函数指针类型
  • nothrow nothrow_t 类型的对象
  • namespace std {
        class bad_alloc;
        class bad_array_new_length;
        struct nothrow_t {};
        extern const nothrow_t nothrow;
        typedef void (*new_handler)();
        new_handler get_new_handler() noexcept;
        new_handler set_new_handler(new_handler new_p) noexcept;
    }
     
    void* operator new(std::size_t size);
    void* operator new(std::size_t size, const std::nothrow_t&) noexcept;
    void  operator delete(void* ptr) noexcept;
    void  operator delete(void* ptr, const std::nothrow_t&) noexcept;
    void* operator new[](std::size_t size);
    void* operator new[](std::size_t size, const std::nothrow_t&) noexcept;
    void  operator delete[](void* ptr) noexcept;
    void  operator delete([]void* ptr, const std::nothrow_t&) noexcept;
     
    void* operator new  (std::size_t size, void* ptr) noexcept;
    void* operator new[](std::size_t size, void* ptr) noexcept;
    void operator delete (void* ptr, void*) noexcept;
    void operator delete[](void* ptr, void*) noexcept;