Opened 10 years ago

Last modified 10 years ago

#7673 closed Support Requests

BOOST_RATIO_STATIC_ASSERT: constant "X" is not a type name — at Version 1

Reported by: kindr@… Owned by: viboes
Milestone: To Be Determined Component: ratio
Version: Boost 1.52.0 Severity: Problem
Keywords: Cc:

Description (last modified by viboes)

Whily compiling a code with icc that uses boost, I get this error:

/home/ac/sroy8/boost_1_52_0/boost/ratio/detail/overflow_helpers.hpp(77): error: constant "X" is not a type name
        BOOST_RATIO_STATIC_ASSERT(X <= max - Y , BOOST_RATIO_OVERFLOW_IN_ADD, ());
        ^

Change History (1)

comment:1 by viboes, 10 years ago

Description: modified (diff)
Milestone: Boost 1.52.0To Be Determined
Severity: ShowstopperProblem
Status: newassigned

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.

Note: See TracTickets for help on using tickets.