diff --git a/include/boost/optional/optional_io.hpp b/include/boost/optional/optional_io.hpp index 85ba7b3..a64d0f5 100644 --- a/include/boost/optional/optional_io.hpp +++ b/include/boost/optional/optional_io.hpp @@ -73,9 +73,14 @@ operator>>(std::basic_istream& in, optional& v) } else { - BOOST_ASSERT(d == '-'); + if ( d != '-') + in.setstate( ios::failbit ); + d = in.get(); - BOOST_ASSERT(d == '-'); + + if ( d != '-') + in.setstate( ios::failbit ); + v = optional() ; } }