std::bad_alloc (3) - Linux Manuals

std::bad_alloc: std::bad_alloc

NAME

std::bad_alloc - std::bad_alloc

Synopsis


Defined in header <new>
class bad_alloc;


std::bad_alloc is the type of the object thrown as exceptions by the allocation_functions to report failure to allocate storage.
 std-bad alloc-inheritance.svg
Inheritance diagram

Member functions


              constructs the bad_alloc object
constructor (public member function)
              replaces a bad_alloc object
operator= (public member function)
              returns explanatory string
what (public member function)


 std::bad_alloc::bad_alloc


bad_alloc();


Constructs new bad_alloc object with an implementation-defined null-terminated byte string which is accessible through what().

Parameters


(none)

Exceptions


(none) (until C++11)
noexcept specification: (since C++11)
noexcept


 std::bad_alloc::operator=


bad_alloc& operator=( const bad_alloc& other );


Assigns the contents of other.

Parameters


other - another exception object to assign

Return value


*this

Exceptions


(none) (until C++11)
noexcept specification: (since C++11)
noexcept


 std::bad_alloc::what


virtual const char* what() const;


Returns the explanatory string.

Parameters


(none)

Return value


Pointer to a null-terminated string with explanatory information.

Exceptions


(none) (until C++11)
noexcept specification: (since C++11)
noexcept


Inherited from std::exception

Member functions


destructor destroys the exception object
             (virtual public member function of std::exception)
[virtual]


what returns an explanatory string
             (virtual public member function of std::exception)
[virtual]

Example


// Run this code


  #include <iostream>
  #include <new>


  int main()
  {
      try {
          while (true) {
              new int[100000000ul];
          }
      } catch (const std::bad_alloc& e) {
          std::cout << "Allocation failed: " << e.what() << '\n';
      }
  }

Possible output:


  Allocation failed: std::bad_alloc

See also


               allocation functions
operator_new (function)
operator_new[]