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
www.boost-consulting.com

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