This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.
Section: 99 [atomics.types.address] Status: Resolved Submitter: INCITS Opened: 2010-08-25 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [atomics.types.address].
View all issues with Resolved status.
Discussion:
Addresses US-161
atomic_address has operator+= and operator-=, but no operator++ or operator--. The template specialization atomic<Ty*> has all of them.
[ 2010-10-27 Daniel adds: ]
Accepting n3164 would solve this issue by replacing atomic_address by atomic<void*>.
[ Resolved in Batavia by accepting n3193. ]
Proposed resolution:
Change 99 [atomics.types.address], class atomic_address synopsis, as indicated:
namespace std { typedef struct atomic_address { […] void* operator=(const void*) volatile; void* operator=(const void*); void* operator++(int) volatile; void* operator++(int); void* operator--(int) volatile; void* operator--(int); void* operator++() volatile; void* operator++(); void* operator--() volatile; void* operator--(); void* operator+=(ptrdiff_t) volatile; void* operator+=(ptrdiff_t); void* operator-=(ptrdiff_t) volatile; void* operator-=(ptrdiff_t); } atomic_address; […] }