Integrated Boost.Rational's sanity checks during assignment in the input operator, respecting IOStreams' exception policy