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:

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

]