Title
Inconsistent implementation requirements for atomic<integral> and atomic<T*>
Status
resolved
Section
[atomics.types.generic]
Submitter
Daniel Krügler

Created on 2010-12-08.00:00:00 last changed 159 months ago

Messages

Date: 2011-05-21.21:15:19

Proposed resolution:

Resolved 2011-03 Madrid meeting by paper N3278

Date: 2011-06-02.15:28:39

Proposed resolution:

Resolved 2011-03 Madrid meeting by paper N3278

Date: 2011-02-10.00:00:00

[ 2011-02-10 Reflector discussion ]

Moved to Tentatively Ready after 5 votes.

Proposed Resolution

The suggested wording changes are against the working draft N3242.

  1. Change [atomics.types.generic] p. 6 as indicated:

    6 There are pointer partial specializations on the atomic class template. These specializations shall have standard layout, trivial default constructors, and trivial destructors. They shall each support aggregate initialization syntax.

Date: 2010-12-08.00:00:00

Paragraph 5 and 6 of [atomics.types.generic] impose different requirements on implementations for specializations of the atomic class template for integral types and for pointer types:

5 The atomic integral specializations and the specialization atomic<bool> shall have standard layout. They shall each have a trivial default constructor and a trivial destructor. They shall each support aggregate initialization syntax.

6 There are pointer partial specializations on the atomic class template. These specializations shall have trivial default constructors and trivial destructors.

It looks like an oversight to me, that for pointer specializations the requirements for standard layout and support for aggregate initialization syntax are omitted. In fact, this been confirmed by the N3193 proposal author. I suggest to impose the same implementation requirements for pointer types as for integral types, this should not impose unrealistic requirements on implementations.

History
Date User Action Args
2011-03-24 21:43:06adminsetmessages: + msg5709
2011-03-24 21:43:06adminsetstatus: voting -> resolved
2011-03-05 15:24:28adminsetstatus: ready -> voting
2011-02-10 22:08:53adminsetmessages: + msg5480
2011-02-10 22:08:53adminsetstatus: new -> ready
2010-12-08 21:33:48adminsetmessages: + msg5472
2010-12-08 00:00:00admincreate