Boost logo

Boost :

Subject: Re: [boost] BOOST_NO_CXX11_ATOMIC?
From: Peter Dimov (lists_at_[hidden])
Date: 2013-11-30 07:48:06


tim wrote:
> in my experience compilers may provide the <atomic> header without fully
> implementing its content:
>
> * some gcc versions only implement atomic<> for integral types, but not
> for structs
>
> * libc++'s atomic<> for structs is broken if the struct has a constructor
> (showstopper for boost.lockfree)

That's not hard to address. We just need two macros,
BOOST_NO_CXX11_ATOMIC_SCALARS and BOOST_NO_CXX11_ATOMIC_STRUCTS, unless of
course you really meant integral types and pointers don't work, in which
case it should be BOOST_NO_CXX11_ATOMIC_INTEGRALS, but I doubt it. (Scalars
is not quite correct as well, because it includes floating point types and
enums, which also may not work on some gcc versions, I don't know. Atomic
floats or enums are rarely used in practice so it may be moot.)


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