Documentation of memory
The exception class thrown when a low level allocator runs out of memory.
It is derived from
std::bad_alloc. This can happen if a low level allocation function like
std::malloc() runs out of memory. Throwing can be prohibited by the handler function.
|using||handler = void(*)(const allocator_info &info, std::size_t amount)|
|The type of the handler called in the constructor of out_of_memory. More...|
|static handler||set_handler (handler h)|
|static handler||get_handler ()|
|out_of_memory (const allocator_info &info, std::size_t amount)|
|const char *||what () const noexcept override|
|const allocator_info &||allocator () const noexcept|
|std::size_t||failed_allocation_size () const noexcept|
The type of the handler called in the constructor of out_of_memory.
When an out of memory situation is encountered and the exception class created, this handler gets called. It is especially useful if exception support is disabled. It gets the allocator_info and the amount of memory that was tried to be allocated.
- Required Behavior:
- It can log the error, throw a different exception derived from
std::bad_allocor abort the program. If it returns, this exception object will be created and thrown.
- Default Behavior:
- On a hosted implementation it logs the error on
stderrand continues execution, leading to this exception being thrown. On a freestanding implementation it does nothing.
- It is different from
std::new_handler; it will not be called in a loop trying to allocate memory or something like that. Its only job is to report the error.
- A static NTBS that describes the error. It does not contain any specific information since there is no memory for formatting.
- The allocator_info passed to it in the constructor.
- The amount of memory that was tried to be allocated. This is the value passed in the constructor.
Generated by 1.8.12