Created on 2014-09-30.00:00:00 last changed 12 months ago
Proposed resolution:
Edit [support.initlist] p1, class template initializer_list synopsis, as indicated:
namespace std { template<class E> class initializer_list { public: […] constexpr initializer_list() noexcept; initializer_list(const initializer_list&) = default; initializer_list(initializer_list&&) = default; initializer_list& operator=(const initializer_list&) = delete; initializer_list& operator=(initializer_list&&) = delete; constexpr size_t size() const noexcept; […] }; […] }
[ Varna 2023-06-12; EWG discussed the issue again ]
EWG consensus: "Send LWG2432 back to LWG to encourage them to either add a note for their implementer to issue a warning as QoI, or to use the tools (explicit convertible_to operator=) at their disposal to accomplish their goal"
The operator=
suggestion refers to:
initializer_list& operator=(convertible_to<initializer_list> auto&& rhs) { /* ... */ }
initializer_list& operator=(initializer_list const&) requires false = default;
[ 2022-11-30 LWG telecon. Status changed: Tentatively NAD → NAD. ]
[ 2022-11-25; see EWG 1369 ]
[ 2022-08-24; Reflector poll ]
Set status to Tentatively NAD after reflector poll in October 2021.
"If somebody wants to revisit it, they'll need to write a paper to demonstrate what the change would break, whether that would be a problem in practice, and convince the evolution groups to make a change. But it's not an LWG issue."
[ Lenexa 2015-05-05: Send to EWG as discussed in Telecon ]
std::initializer_list::operator= [support.initlist] is horribly broken and it needs deprecation:
std::initializer_list<foo> a = {{1}, {2}, {3}}; a = {{4}, {5}, {6}}; // New sequence is already destroyed.
Assignability of initializer_list isn't explicitly specified, but most implementations supply a default assignment operator. I'm not sure what [description] says, but it probably doesn't matter.
History | |||
---|---|---|---|
Date | User | Action | Args |
2023-11-13 13:14:11 | admin | set | messages: + msg13833 |
2022-11-30 17:59:24 | admin | set | messages: + msg13132 |
2022-11-25 09:41:00 | admin | set | messages: + msg13111 |
2022-08-24 18:53:49 | admin | set | messages: + msg12708 |
2022-08-24 18:53:49 | admin | set | status: ewg -> nad |
2015-05-22 19:58:39 | admin | set | messages: + msg7451 |
2015-05-22 19:58:39 | admin | set | status: new -> ewg |
2014-10-07 17:46:59 | admin | set | messages: + msg7122 |
2014-09-30 00:00:00 | admin | create |