std::nothrow
De cppreference.com
<tbody>
</tbody>
| 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.
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
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) |