Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-03-01 12:17:29

Guillaume Melquiond <guillaume.melquiond_at_[hidden]> writes:

> Le lun 01/03/2004 à 16:58, Beman Dawes a écrit :
>> Looking at the results, there is lots of good news. Tests now passing,
>> warnings removed, etc. But there are also regressions in a number of
>> libraries:
>> Interval - Borland, VC++ 6.0, and VC++ 7.0 regressions.
> I already reported these failures to the list two weeks ago so that
> anybody interested could take a look. There were no answer so the
> library has been marked as unusable with these compilers in the
> status/explicit-failures-markup.xml. It doesn't appear in your
> regression logs; but in Metacomm's summaries it appears clearly.
>> Hopefully the developers will take a look at these soon so the regressions
>> don't hang around until the next release.
> I don't intend to fix them. The library doesn't use any complex C++
> construction (even Borland 5.5 is able to compile it), I'm not fond of
> trying to workaround any strange bug a compiler may have.

This is not a particularly obscure issue for MSVC: you're defining a
template member function outside the class body:

  template<class T, class Policies> template<class T1> inline
  interval<T, Policies>::interval(T1 const &v)
    if (checking::is_nan(v)) set_empty();
    else {
      rounding rnd;
      low = rnd.conv_down(v);
      up = rnd.conv_up (v);

Just move it inside of the interval class template and you'll have
portable code.

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at