846. No definition for constructor

Section: 32.6.1 [atomics.types.operations] Status: CD1 Submitter: Alisdair Meredith Opened: 2008-06-03 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [atomics.types.operations].

View all issues with CD1 status.

Discussion:

The atomic classes and class templates (99 [atomics.types.integral] / 99 [atomics.types.address]) have a constexpr constructor taking a value of the appropriate type for that atomic. However, neither clause provides semantics or a definition for this constructor. I'm not sure if the initialization is implied by use of constexpr keyword (which restricts the form of a constructor) but even if that is the case, I think it is worth spelling out explicitly as the inference would be far too subtle in that case.

[ San Francisco: ]

Lawrence will provide wording.

This issue is addressed in N2783.

Proposed resolution:

before the description of ...is_lock_free, that is before 32.6.1 [atomics.types.operations] paragraph 4, add the following description.


constexpr A::A(C desired);
Effects:
Initializes the object with the value desired. [Note: Construction is not atomic. —end note]