Boost logo

Boost :

Subject: Re: [boost] [Thread] possible bug in Move emulation "portable interface"
From: Gavin Lambert (gavinl_at_[hidden])
Date: 2013-09-08 19:10:24


On 7/09/2013 20:00, Quoth Vicente J. Botet Escriba:
>> Bug 1: the Boost.Thread documentation and release history indicate
>> that BOOST_THREAD_VERSION==3 is the default since v1.52.
[...]
> Please could you point me where in the documentation this misinformation
> is still there?

As noted, in the release history.

http://www.boost.org/doc/libs/1_54_0/doc/html/thread/changes.html

See the "boost 1.52" and "boost 1.51" subheadings.

>> Suggested fix is to explicitly specify the namespace in the macro, eg.
>> replace "enable_move_utility_emulation" with
>> "::boost::enable_move_utility_emulation".
>>
> Humm, I don't know if this is correct. In any case I didn't know that we
> could specialize templates this way. Could some one confirm this kind of
> specializations is portable?

It works fine for me in VC9, but as you've discovered it's apparently
not valid in GCC. So I guess this is non-portable and we'll just have
to live with the escape into the boost namespace. (I still don't like
it though, but I realise your hands are tied.)

Although, have you tried it without the initial "::"? That seems to be
what GCC is actually objecting to, and theoretically the construct
should still work without that as long as nobody defines some other
boost subnamespace to introduce ambiguity (which would be silly anyway).
  Though the proposal you found suggests that this may not be
universally valid either.


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