Created on 2008-07-10.00:00:00 last changed 179 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 | |