kennen:lib:set_new_handler
Inhaltsverzeichnis
set_new_handler()
#include
<new>
new_handler set_new_handler(new_handler handler)
Hinterlegt einen Verweis auf die Funktion, die aufzurufen ist, wenn kein Speicher reserviert werden kann.
Ein new_handler
sollte eine der folgenden Aktionen ausführen:
- mehr Speicher für den |new|-Aufruf bereitstellen und dann zurückkehren,
- eine
bad_alloc
-Ausnahme werfen oder abort()
oderexit()
aufrufen.
Parameter
handler | Adresse einer Funktion |
Die Funktion muss folgenden Typ besitzen:
typedef void (*new_handler) ();
Ergebnis
Rückgabewert: die Adresse der bisherigen Behandlungsroutine.
Siehe auch
Beispiel
- set_new_handler.cpp
#include <new> #include <iostream> void notstand() { std::cerr << "... wird es auch schief gehen." << std::endl; throw std::bad_alloc(); } int main() { std::new_handler old = std::set_new_handler(notstand); try { std::cout << "Wenn etwas schiefgehen kann, ..." << std::endl; double *p = new double[ 100000000 ]; } catch(std::bad_alloc& ) { std::cerr << "\t(Murphy's Gesetz)" << std::endl; } std::set_new_handler(old); }
kennen/lib/set_new_handler.txt · Zuletzt geändert: 2019-11-20 16:15 von 127.0.0.1