Hello,
After a short view at the rational.hpp header I propose to perform the
following changes:
1) As counterpart to the existing:
bool operator!() const;
one should definitly add:
operator bool_replacement_type() const;
with a proper (member function pointer) definition of bool_replacement_type.
2) The function template
template <typename IntType>
IntType lcm(IntType n, IntType m);
should be defined as
template <typename IntType>
IntType lcm(IntType n, boost::call_traits<IntType>::param_type m);
which makes sense in this case because m is not modified internally (in
contrast to n)
3) The boost::rational IO should use proper templated extractors and
inserters for those (most) compilers, which provide corresponding std IO
libraries, such that
#if defined (BOOST_NO_TEMPLATED_STREAMS)
... // current impl
#else
template