I porto una aplicación de tamaño medio de C a C++. No trata en ningún lado con excepciones, y eso no debería cambiar.Evitar std :: bad_alloc. new debe devolver un puntero NULL
Mi (¡incorrecta!) Comprensión de C++ fue (hasta que lo aprendí de la manera difícil ayer) que el nuevo operador (predeterminado) devuelve un puntero NULL en caso de un problema de asignación. Sin embargo, eso solo fue cierto hasta 1993 (más o menos). Hoy en día, arroja una excepción std :: bad_alloc.
¿Es posible volver al comportamiento anterior sin volver a escribir todo para usar std :: nothrow en cada llamada?
Le puede interesar leer esto: http://stackoverflow.com/questions/550451/will-new-return-null-in-any-case – Naveen
Muerde la bala. Ve a arreglar tu código para usar std :: nothrow. awk y un par de expresiones regulares te darán el 90% del camino hasta allí. –
+1 para cosas realmente reales para muchas personas a pesar de que estoy en contra de hacer tales cosas (y respondí a continuación por qué). –