Well X is defined as a parameter
template <boost::intmax_t X, boost::intmax_t Y>
class br_add<X, Y, 1>
{
static const boost::intmax_t min = boost::integer_traits<boost::intmax_t>::const_min;
static const boost::intmax_t max = boost::integer_traits<boost::intmax_t>::const_max;
BOOST_RATIO_STATIC_ASSERT(X <= max - Y , BOOST_RATIO_OVERFLOW_IN_ADD, ());
public:
static const boost::intmax_t value = X + Y;
};
I don't know how to fix this other than commenting the line for your compiler. Patches are welcome. Please provide the explicit compiler version.