[cfe-dev] [libcxx] std::atomic default constructor
Howard Hinnant
hhinnant at apple.com
Fri Mar 15 13:34:50 PDT 2013
Looks like a bug that needs fixing. When I wrote <atomic>, = default wasn't implemented yet. The entire library needs to be scanned for this issue. And the fix needs to be macro'd up so that we don't break C++03 mode more than it already is.
Howard
On Mar 15, 2013, at 3:50 PM, Stephan Tolksdorf <st at quanttec.com> wrote:
> Hi,
>
> Is there a reason that the default constructors for the std::atomic types in libc++'s <atomic> are not explicitly defaulted? In the header the "= default" is commented out and instead a trivial constructor is explicitly defined. This leads to non-standard behaviour, because value initialization doesn't zero-initialize the atomic value.
>
> For example, the default constructor of the following struct Test does not zero-initialize atomicValue as expected:
>
> struct Test {
> int value{}; // is zero-initialized
> std::atomic<int> atomicValue{}; // is not zero-initialized
> };
>
> Best regards,
> Stephan
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
More information about the cfe-dev
mailing list