-
Notifications
You must be signed in to change notification settings - Fork 43
Open
Description
BOOST_EXCEPTION_DISABLE have no effect with rational lib. Due to:
rational.hpp
// Input and output
template <typename IntType>
std::istream& operator>> (std::istream& is, rational<IntType>& r)
{
using std::ios;
IntType n = IntType(0), d = IntType(1);
char c = 0;
detail::resetter sentry(is);
if ( is >> n )
{
if ( is.get(c) )
{
if ( c == '/' )
{
if ( is >> std::noskipws >> d )
try {
r.assign( n, d );
} catch ( bad_rational & ) { // normalization fail
try { is.setstate(ios::failbit); }
catch ( ... ) {} // don't throw ios_base::failure...
if ( is.exceptions() & ios::failbit )
throw; // ...but the original exception instead
// ELSE: suppress the exception, use just error flags
}
}
else
is.setstate( ios::failbit );
}
}
return is;
}Metadata
Metadata
Assignees
Labels
No labels