std::nothrow
De cppreference.com
Definido en el archivo de encabezado <new>
|
||
extern const std::nothrow_t nothrow; |
||
std::nothrow
es una constante de tipo std::nothrow_t utilizada para desambiguar las sobrecargas de las funciones de asignación que lanzan y que no lanzan excepciones.
[editar] Ejemplo
Ejecuta este código
#include <iostream> #include <new> int main() { try { while (true) { new int[100000000ul]; // sobrecarga que lanza } } catch (const std::bad_alloc& e) { std::cout << e.what() << '\n'; } while (true) { int* p = new(std::nothrow) int[100000000ul]; // sobrecarga que no lanza if (p == nullptr) { std::cout << "nullptr devuelto al asignar memoria\n"; break; } } }
Salida:
std::bad_alloc nullptr devuelto al asignar memoria
[editar] Véase también
Etiqueta de tipo utilizada para seleccionar una función de asignación que no lanza excepciones. (clase) | |
Funciones de asignación. (función) |