Title
begin-expr and end-expr should refer to range
Status
tentatively ready
Section
8.7 [stmt.expand]
Submitter
Geng Cheng

Created on 2026-05-19.00:00:00 last changed 2 weeks ago

Messages

Date: 2026-10-07.20:41:18

Proposed resolution (approved by CWG 2026-10-06):

Change in 8.7 [stmt.expand] paragraph 3 as follows:

For an expression E, let the expressions begin-expr and end-expr be determined as specified in 8.6.5 [stmt.ranged], except that the exposition-only variable range is defined by the hypothetical declaration decltype(auto) range = (E);. An expression is expansion-iterable if it does not have array type and either
  • begin-expr and end-expr are of the form Erange.begin() and Erange.end(), or
  • argument-dependent lookups for begin(Erange) and for end(Erange) each find at least one viable candidate (12.2.3 [over.match.viable]).
Date: 2026-05-19.00:00:00

(From submission #909.)

The exposition-only expressions begin-expr and end-expr in 8.7 [stmt.expand] paragraph 3 refer to some hypothetical range variable when determined in 8.6.5 [stmt.ranged]. The forms E.begin and end(E) never exist there. Also, after issue 3131, the local definition of range is different.

History
Date User Action Args
2026-10-07 20:41:18adminsetstatus: open -> tentatively ready
2026-10-03 07:02:55adminsetmessages: + msg8691
2026-05-19 00:00:00admincreate