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,,,