From 8608ad14972e4db353045cfaf4e24f75b8851327 Mon Sep 17 00:00:00 2001 From: Fernando Cacciola Date: Tue, 20 Jul 2010 19:21:44 +0000 Subject: [PATCH] Fixed behaviour in case of invalid input [SVN r64208] --- include/boost/optional/optional_io.hpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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() ; } }