std::set_new_handler
De cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <new>
|
||
| std::new_handler set_new_handler(std::new_handler new_p) |
||
Hace
new_p el nuevo mundial nuevo controlador de función y devuelve el previamente instalada del controlador de nuevo .Original:
Makes
new_p the new global new-handler function and returns the previously installed new-handler.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Contenido |
[editar] Notas
El nuevo del controlador de función es la función llamada por <div class="t-tr-text">funciones de asignación
cada vez que un intento de asignación de memoria falla. Su propósito es una de tres cosas:Original:
allocation functions
The text has been machine-translated via [http://translate.google.com Google Translate].
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.
Original:
The new-handler function is the function called by
funciones de asignación</div> whenever a memory allocation attempt fails. Its intended purpose is one of three things:
Original:
allocation functions
The text has been machine-translated via [http://translate.google.com Google Translate].
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
disponer de más memoria
2) Original:
make more memory available
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
terminar el programa (por ejemplo, mediante std::terminate llamada)
3) Original:
terminate the program (e.g. by calling std::terminate)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
lanzar una excepción de tipo std::bad_alloc o derivados de std::bad_alloc
Original:
throw exception of type std::bad_alloc or derived from std::bad_alloc
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Si nueva manejador de devoluciones, la función de asignación repite el intento de asignación previamente fallado y llama al nuevo manejador de nuevo si vuelve a fallar la asignación. Para finalizar el ciclo, nuevo del controlador puede llamar std::set_new_handler(nullptr): si, después de un intento fallido de asignación, la función de asignación determina que std::get_new_handler devuelve un valor de puntero nulo, std::bad_alloc tirar .
Original:
If new-handler returns, the allocation function repeats the previously-failed allocation attempt and calls the new-handler again if the allocation fails again. To end the loop, new-handler may call std::set_new_handler(nullptr): if, after a failed allocation attempt, allocation function finds that std::get_new_handler returns a null pointer value, it will throw std::bad_alloc.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Al inicio del programa, nuevo del controlador es un puntero nulo .
Original:
At program startup, new-handler is a null pointer.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Parámetros
| new_p | - | puntero a la función de std::new_handler tipo, o un puntero nulo
Original: pointer to function of type std::new_handler, or null pointer The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[editar] Valor de retorno
El controlador instalado previamente nuevo, o un valor de puntero nulo si no se ha instalado .
Original:
The previously-installed new handler, or a null pointer value if none was installed.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Excepciones
[editar] Ejemplo
#include <iostream> #include <new> void handler() { std::cout << "Memory allocation failed, terminating\n"; std::set_new_handler(nullptr); } int main() { std::set_new_handler(handler); try { while(true) new int[100000000ul]; }catch(const std::bad_alloc& e) { std::cout << e.what() << '\n'; } }
Output:
Memory allocation failed, terminating std::bad_alloc
[editar] Ver también
| funciones de asignación Original: allocation functions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función) | |
| set_new_handler |
registra un controlador nuevo Original: registers a new handler The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función) |
| función de tipo puntero del nuevo controlador Original: function pointer type of the new handler The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (typedef) | |
| Excepción que se produce cuando la asignación de memoria falla Original: exception thrown when memory allocation fails The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (clase) | |