FreeBSD Manual Pages
std::bad_array_new_length(3) C++ Standard Libary std::bad_array_new_length(3) NAME std::bad_array_new_length - std::bad_array_new_length Synopsis Defined in header <new> class bad_array_new_length; (since C++11) std::bad_array_new_length is the type of the object thrown as excep- tions by the new-expressions to report invalid array lengths if 1) array length is negative 2) total size of the new array would exceed implementation-defined maximum value 3) the number of initializer-clauses exceeds the number of elements to initialize Only the first array dimension may generate this exception; dimen- sions other than the first are constant expressions and are checked at compile time. std-bad array new length-inheritance.svg Inheritance diagram Member functions constructor constructs a new bad_array_new_length object (public member function) operator= replaces the bad_array_new_length object (public member function) what returns the explanatory string (public member function) std::bad_array_new_length::bad_array_new_length bad_array_new_length() noexcept; (1) (since C++11) bad_array_new_length( const bad_array_new_length& other ) (2) (since C++11) noexcept; Constructs a new bad_array_new_length object with an implementation- defined null-terminated byte string which is accessible through what(). 1) Default constructor. 2) Copy constructor. If *this and other both have dynamic type std::bad_array_new_length then std::strcmp(what(), other.what()) == 0. Parameters other - another exception object to copy std::bad_array_new_length::operator= bad_array_new_length& operator=( const bad_array_new_length& other ) (since C++11) noexcept; Assigns the contents with those of other. If *this and other both have dynamic type std::bad_array_new_length then std::strcmp(what(), other.what()) == 0 after assignment. Parameters other - another exception object to assign with Return value *this std::bad_array_new_length::what virtual const char* what() const noexcept; (since C++11) Returns the explanatory string. Parameters (none) Return value Pointer to a null-terminated string with explanatory information. The string is suitable for conversion and display as a std::wstring. The pointer is guaranteed to be valid at least until the exception object from which it is ob- tained is destroyed, or until a non-const member function (e.g. copy assignment operator) on the exception object is called. Notes Implementations are allowed but not required to override what(). Inherited from std::bad_alloc Inherited from std::exception Member functions destructor destroys the exception object [virtual] (virtual public member function of std::exception) what returns an explanatory string [virtual] (virtual public member function of std::exception) Example Three conditions where std::bad_array_new_length should be thrown: // Run this code #include <iostream> #include <new> #include <climits> int main() { try { int negative = -1; new int[negative]; } catch(const std::bad_array_new_length &e) { std::cout << "1) " << e.what() << ": negative size\n"; } try { int small = 1; new int[small]{1,2,3}; } catch(const std::bad_array_new_length &e) { std::cout << "2) " << e.what() << ": too many initializers\n"; } try { long large = LONG_MAX; new int[large][1000]; } catch(const std::bad_array_new_length &e) { std::cout << "3) " << e.what() << ": too large\n"; } std::cout << "End\n"; } Possible output: 1) std::bad_array_new_length: negative size 2) std::bad_array_new_length: too many initializers 3) std::bad_array_new_length: too large End See also operator new allocation functions operator new[] (function) bad_alloc exception thrown when memory allocation fails (class) http://cppreference.com 2022.07.31 std::bad_array_new_length(3)
NAME | Synopsis | Member functions | Parameters | Parameters | Return value | Parameters | Return value | Notes | Member functions | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::bad_array_new_length&sektion=3&manpath=FreeBSD+Ports+15.0>
