Al leer la revisión N3242 del borrador de C++ 11, parece que algunos componentes de las interfaces de la biblioteca estándar (especialmente el enhebrado y el bloqueo) dependen del manejo de excepciones.¿Hay una lista de interfaces de biblioteca estándar de C++ 11 que requieren excepciones habilitadas?
Dado que trabajo mucho con las excepciones deshabilitado, me pregunto qué componentes/características de la biblioteca serán (prácticamente o lógicamente) inutilizables sin el manejo de excepciones habilitado?
Prácticamente, todas las características son utilizables, hasta que se produce una excepción real. Entonces tu programa falla. Si una función de biblioteca puede arrojar, esto se especifica en el estándar, por lo que en cierto modo hay una lista: el estándar en sí mismo. –
@ n.m. parece que has leído mi publicación usando la definición incorrecta de "prácticamente": http://dictionary.reference.com/browse/practically. si no, hay una diferencia en la complejidad y localidad de cosas como 'std :: vector.at (size_t)' contra el enhebrado y el bloqueo de un programa/entorno. Después de haber implementado el enhebrado y el bloqueo de bibliotecas, puedo decirte que puedes defenderte contra el anterior de manera fácil y predecible. (cont) – justin
(cont) defenderse de este último es mucho más complejo. cuando las cosas van mal, una excepción no controlada no es una solución (para algunos de nosotros). No puedo ignorar estos errores :) por lo tanto, no puedo confiar en las implementaciones de enhebrado y bloqueo de la biblioteca porque la única defensa ofrecida por la biblioteca son las excepciones. En conclusión, las interfaces de enhebrado y bloqueo no son una buena opción para los programas donde las excepciones están deshabilitadas. Espero que ayude. – justin