Created on 2008-07-10.00:00:00 last changed 167 months ago
Rationale:
Already fixed by the time the LWG processed it.
Proposed resolution:
Change [atomics.types.operations]/p9:
C atomic_load(const volatile A * object); C atomic_load_explicit(const volatile A * object, memory_order); C A ::load(memory_order order = memory_order_seq_cst) const volatile;Requires: The order argument shall not be
memory_order_acquirememory_order_release nor memory_order_acq_rel.
Change [atomics.types.operations]/p17:
... When only one memory_order argument is supplied, the value of success is order, and the value of failure is order except that a value of memory_order_acq_rel shall be replaced by the value
memory_order_requirememory_order_acquire ...
There's an error in [atomics.types.operations]/p9:
C atomic_load(const volatile A * object); C atomic_load_explicit(const volatile A * object, memory_order); C A ::load(memory_order order = memory_order_seq_cst) const volatile;Requires: The order argument shall not be memory_order_acquire nor memory_order_acq_rel.
I believe that this should state
shall not be memory_order_release.
There's also an error in [atomics.types.operations]/p17:
... When only one memory_order argument is supplied, the value of success is order, and the value of failure is order except that a value of memory_order_acq_rel shall be replaced by the value memory_order_require ...
I believe this should state
shall be replaced by the value memory_order_acquire ...
History | |||
---|---|---|---|
Date | User | Action | Args |
2011-03-05 00:04:13 | admin | set | messages: + msg5591 |
2010-10-21 18:28:33 | admin | set | messages: + msg4110 |
2008-07-10 00:00:00 | admin | create |