|
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