namespace std { class bad_array_new_length : public bad_alloc { public: bad_array_new_length() noexcept; }; }
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]).
Effects: constructs an object of class bad_array_new_length.
Remarks: the result of calling what() on the newly constructed object is implementation-defined.