Created on 2025-08-09.00:00:00 last changed 3 weeks ago
(From submission #743.)
Consider:
struct S { }; void f() { S s; template for (auto x : s) { } }
This destructuring expansion statement is ill-formed, because the syntactic rewrite contains
auto&& [] = s ;
which is an ill-formed structured binding declaration.
Empty expansion statements are allowed for the other two kinds of expansion statements.
Possible resolution:
Change in 8.7 [stmt.expand] bullet 5.3 as follows:
- Otherwise, S is a destructuring expansion statement and, if N is 0, S is equivalent to:
init-statement constexpropt auto&& range = expansion-initializer ;otherwise, S is equivalent to: ...
History | |||
---|---|---|---|
Date | User | Action | Args |
2025-08-09 00:00:00 | admin | create |