17 Language support library [support] (original) (raw)
17.6 Dynamic memory management [support.dynamic]
17.6.3 Storage allocation errors [alloc.errors]
17.6.3.1 Class bad_alloc [bad.alloc]
namespace std { class bad_alloc : public exception { public: // see [exception] for the specification of the special member functions const char* what() const noexcept override; }; }
The classbad_allocdefines the type of objects thrown as exceptions by the implementation to report a failure to allocate storage.
const char* what() const noexcept override;
Returns:An implementation-defined ntbs.
17.6.3.2 Class bad_array_new_length [new.badlength]
namespace std { class bad_array_new_length : public bad_alloc { public: // see [exception] for the specification of the special member functions const char* what() const noexcept override; }; }
The class bad_array_new_length defines the type of objects thrown as exceptions by the implementation to report an attempt to allocate an array of size less than zero or greater than an implementation-defined limit ([expr.new]).
const char* what() const noexcept override;
Returns:An implementation-defined ntbs.
17.6.3.3 Type new_handler [new.handler]
using new_handler = void (*)();
The type of ahandler functionto be called byoperator new()oroperator new[]() ([new.delete]) when they cannot satisfy a request for additional storage.
Required behavior:A new_handler shall perform one of the following:
- make more storage available for allocation and then return;
- throw an exception of typebad_allocor a class derived frombad_alloc;
- terminate execution of the program without returning to the caller.
17.6.3.4 set_new_handler [set.new.handler]
new_handler set_new_handler(new_handler new_p) noexcept;
Effects:Establishes the function designated by new_p as the currentnew_handler.
Returns:The previous new_handler.
Remarks:The initial new_handler is a null pointer.
17.6.3.5 get_new_handler [get.new.handler]
new_handler get_new_handler() noexcept;
Returns:The current new_handler.
[ Note
:
This may be a null pointer value.
— end note
]