Boost logo

Boost :

From: Simon Atanasyan (atanasyan_at_[hidden])
Date: 2007-10-23 04:31:04


2007/10/23, Gennadiy Rozental <rogeeff_at_[hidden]>:
> "Vladimir Prus" <ghost_at_[hidden]> wrote in message
> news:E1IhobN-0003E0-Kj_at_zigzag.lvk.cs.msu.su...
> > Simon Atanasyan wrote:
> >
> >> 2007/10/13, Vladimir Prus <ghost_at_[hidden]>:
> >>> Looking at program_options failures, it seems like two platforms
> >>> are fully not working due to issues in Boost.Test.
> >>>
> >>> First is MIPS:
> >>> http://tinyurl.com/3c8avh
> >>>
> >>> Second is Sun:
> >>> http://tinyurl.com/2yjlpd
> >>>
> >>> Can those issues be fixed in near future?
> >>
> >> It's a bug in Sun C++. This bug exists in all version and current
> >> development branch. Compiler cannot select overloaded function and
> >> shows incorrect ambiguity error in the following test case:
> >>
> >> template <typename T>
> >> void foo(T const & t) {}
> >>
> >> template <typename T, unsigned N>
> >> void foo(T ( & t ) [N]) {}
> >>
> >> int main()
> >> {
> >> foo("test");
> >> }
> >>
> >> If remove 'const' from the first function compiler works good.
> >
> > Even if that's Sun C++ issue, it's unfortunate that Boost.Test
> > is affected. Maybe, a workaround in Boost.Test is possible?
>
> Unfortunately I do not have easy access to this platform any more. Can
> anyone either propose concrete patch or give me temporary access to this
> platform?

The problem is in the Sun related workaround in the
boost/test/test_tools.hpp. I do not know purpose of this workaround.
Maybe it was dedicated to old bug in the Sun C++ related to reference
to array as an argument of template function. Anyway Sun C++ 5.8, 5.9
do not need this workaround. So I suggest to remove it at all. Older
version of Sun C++ cannot compile this code with and without
workaround.

Patch is attached.

-- 
Simon Atanasyan



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