Boost logo

Boost :

Subject: Re: [boost] Regression test failures on the develop branch
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2014-03-10 13:25:03


On Mon, Mar 10, 2014 at 8:37 PM, Andrey Semashev
<andrey.semashev_at_[hidden]> wrote:
>>
>> Would it be possible to get a log ok a problem, even if that’s be email? Currently I have nothing to work with to fix the issue. I’m happy to debug, but need some input. If you can send me something that would be super.
>
> I've just updated my local develop branch and tried to build my tests
> and got this:
>
> compile-c-c++ bin.v2\libs\test\build\msvc-12.0\debug\address-model-64\asynch-exceptions-on\threading-multi\exception_safety.obj
> exception_safety.cpp
> D:\src\_SVN\boost\boost/range/iterator_range_core.hpp(423) : error
> C2872: 'enable_if' : ambiguous symbol
> could be 'D:\src\_SVN\boost\boost/utility/enable_if.hpp(36) :
> boost::enable_if'
> or 'D:\src\_SVN\boost\boost/test/tree/decorator.hpp(184)
> : boost::unit_test::decorator::enable_if'
> D:\src\_SVN\boost\boost/lexical_cast.hpp(2082) : see reference
> to class template instantiation 'boost::iterator_range<const unsigned
> char *>' being compiled
> D:\src\_SVN\boost\boost/lexical_cast.hpp(2078) : while
> compiling class template member function 'bool

[snip]

> D:\src\_SVN\boost\boost/test/impl/exception_safety.ipp(186) :
> see reference to function template instantiation 'Target
> boost::lexical_cast<unsigned int,boost::unit_test::basic_cstring<const
> char>>(const Source &)' being compiled
> with
> [
> Target=unsigned int
> , Source=boost::unit_test::basic_cstring<const char>
> ]
> D:\src\_SVN\boost\boost/range/iterator_range_core.hpp(434) : error
> C2872: 'enable_if' : ambiguous symbol
> could be 'D:\src\_SVN\boost\boost/utility/enable_if.hpp(36) :
> boost::enable_if'
> or 'D:\src\_SVN\boost\boost/test/tree/decorator.hpp(184)
> : boost::unit_test::decorator::enable_if'
>
> call "C:\Program Files (x86)\microsoft visual studio
> 12.0\vc\vcvarsall.bat" x86_amd64 >nul
> cl /Zm800 -nologo
> @"bin.v2\libs\test\build\msvc-12.0\debug\address-model-64\asynch-exceptions-on\threading-multi\exception_safety.obj.rsp"
>
> It seems like a name clash somewhere in Boost.Test.

I may be missing something, but I don't quite understand how
boost::unit_test::decorator::enable_if could clash with
boost::enable_if. I don't find any global using declarations that
could bring boost::unit_test::decorator::enable_if into boost::, but
maybe I missed it. There is one using directive in
exception_safety_tester::exception_safety_tester() though, where
lexical_cast it invoked, but it should not affect iterator_range.
Maybe there's a compiler problem involved?

Anyway, just to compile things on my end I used the attached patch to
work around the problem.




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