id summary reporter owner description type status milestone component version severity resolution keywords cc 9088 I/O Exception state & status savers may cause std::terminate in C++11 Daryle Walker Daryle Walker "The `boost::io::basic_ios_iostate_saver` and `boost::io::basic_ios_exception_saver` class templates in file ""boost/io/ios_state.hpp"" alter the I/O exception state and trigger-mask, respectively, in their constructors and destructors. When a change in either makes the two statuses have a non-zero result when combined with bitwise-and, an exception is thrown. A potentially throwing destructor is problematic enough, but C++11 adds a new source of trouble. C++11 declares all destructors with no exception specification to be `noexcept` by default, which makes all imported pre-C++11 types with a throwing destructor to call `std::terminate` if they throw. The (immediate) fix would be to add a `noexcept(false)` specification to those destructors when used in C++11 mode. " Bugs new To Be Determined io Boost 1.54.0 Problem