Created on 2018-10-01.00:00:00 last changed 45 months ago
Proposed resolution:
This wording is relative to N4762.
Edit [atomics.ref.generic], class template atomic_ref synopsis, as indicated:
[…]atomic_ref() = delete;atomic_ref& operator=(const atomic_ref&) = delete; […]
Edit [atomics.ref.int], class template specialization atomic_ref<integral> synopsis, as indicated:
[…]atomic_ref() = delete;atomic_ref& operator=(const atomic_ref&) = delete; […]
Edit [atomics.ref.float], class template specialization atomic_ref<floating-point> synopsis, as indicated:
[…]atomic_ref() = delete;atomic_ref& operator=(const atomic_ref&) = delete; […]
Edit [atomics.ref.pointer], class template specialization atomic_ref<T*> synopsis, as indicated:
[…]atomic_ref() = delete;atomic_ref& operator=(const atomic_ref&) = delete; […]
[ 2018-11, Adopted in San Diego ]
[ 2018-10-06 Status to Tentatively Ready after seven positive votes on the reflector. ]
atomic_ref has a deleted default constructor, which causes pointless ambiguities in cases like:
void meow(atomic_ref<int>); void meow(some_default_constructible_struct); meow({});
It should have no default constructor rather than a deleted one. (Note that it has other user-defined constructors and so cannot be an aggregate under any definition.)
History | |||
---|---|---|---|
Date | User | Action | Args |
2021-02-25 10:48:01 | admin | set | status: wp -> c++20 |
2018-11-12 04:39:29 | admin | set | messages: + msg10209 |
2018-11-12 04:39:29 | admin | set | status: voting -> wp |
2018-10-08 05:13:59 | admin | set | status: ready -> voting |
2018-10-06 10:57:39 | admin | set | messages: + msg10158 |
2018-10-06 10:57:39 | admin | set | status: new -> ready |
2018-10-01 22:07:31 | admin | set | messages: + msg10153 |
2018-10-01 00:00:00 | admin | create |