diff --git a/include/boost/random/linear_congruential.hpp b/include/boost/random/linear_congruential.hpp index 90f6e61..459462a 100644 --- a/include/boost/random/linear_congruential.hpp +++ b/include/boost/random/linear_congruential.hpp @@ -193,7 +193,15 @@ public: operator>>(std::basic_istream& is, linear_congruential& lcg) { - return is >> lcg._x; + IntType x; + if(is >> x) { + if(x >= (lcg.min)() && x <= (lcg.max)()) { + lcg._x = x; + } else { + is.setstate(std::ios_base::failbit); + } + } + return is; } private: