Created on 2010-08-25.00:00:00 last changed 170 months ago
Proposed resolution:
Extend the synopsis around atomic_address in [atomics.types.address] as indicated:
namespace std { [..] bool atomic_compare_exchange_weak(volatile atomic_address*, void**, void*); bool atomic_compare_exchange_weak(atomic_address*, void**, void*); bool atomic_compare_exchange_strong(volatile atomic_address*, void**, void*); bool atomic_compare_exchange_strong(atomic_address*, void**, void*); bool atomic_compare_exchange_weak_explicit(volatile atomic_address*, void**, void*, memory_order, memory_order); bool atomic_compare_exchange_weak_explicit(atomic_address*, void**, void*, memory_order, memory_order); bool atomic_compare_exchange_strong_explicit(volatile atomic_address*, void**, void*, memory_order, memory_order); bool atomic_compare_exchange_strong_explicit(atomic_address*, void**, void*, memory_order, memory_order); bool atomic_compare_exchange_weak(volatile atomic_address*, const void**, const void*); bool atomic_compare_exchange_weak(atomic_address*, const void**, const void*); bool atomic_compare_exchange_strong(volatile atomic_address*, const void**, const void*); bool atomic_compare_exchange_strong(atomic_address*, const void**, const void*); bool atomic_compare_exchange_weak_explicit(volatile atomic_address*, const void**, const void*, memory_order, memory_order); bool atomic_compare_exchange_weak_explicit(atomic_address*, const void**, const void*, memory_order, memory_order); bool atomic_compare_exchange_strong_explicit(volatile atomic_address*, const void**, const void*, memory_order, memory_order); bool atomic_compare_exchange_strong_explicit(volatile atomic_address*, const void**, const void*, memory_order, memory_order); bool atomic_compare_exchange_strong_explicit(atomic_address*, const void**, const void*, memory_order, memory_order); [..] }
[ Resolved in Batavia by accepting n3193. ]
[ 2010-10-27 Daniel adds: ]
Accepting n3164 would solve this issue differently by removing the overloads with const void* arguments, because they break type-safety.
Addresses US-164
atomic_address has member functions compare_exchange_weak and compare_exchange_strong that take arguments of type const void*, in addition to the void* versions. If these member functions survive, there should be corresponding free functions.
History | |||
---|---|---|---|
Date | User | Action | Args |
2010-11-18 12:46:23 | admin | set | status: nad editorial -> resolved |
2010-11-13 02:14:14 | admin | set | messages: + msg5349 |
2010-11-13 02:14:14 | admin | set | status: open -> nad editorial |
2010-10-27 21:43:25 | admin | set | messages: + msg5173 |
2010-10-27 21:43:25 | admin | set | messages: + msg5172 |
2010-10-24 03:04:13 | admin | set | messages: + msg4955 |
2010-08-25 00:00:00 | admin | create |