Boost logo

Boost :

From: Guillaume Melquiond (gmelquio_at_[hidden])
Date: 2002-09-16 04:02:36


Hi,

I was testing the interactions between the Interval library and the
Rational library. And I did encounter a small problem on such a code:

  typedef rational<something> R;
  typedef interval<R> I;

  I a; R b;
  I c = a / b;

Here the compiler complains about ambiguous operators:

  'operator/ (const I&, const R&)' defined in rational.hpp
  'operator/ (const I&, const R&)' defined in interval.hpp

The compiler sees an ambiguity since rational.hpp defines 'operator/' by:

  template <typename IntType, typename T>
  rational<IntType>
  operator/ (const T& i, const rational<IntType>& r);

And I think it's wrong (just look at the return type). The first argument
shouldn't be of type 'T' but of type 'IntType' or 'rational<IntType>'.

Thanks,

Guillaume


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk