Created on 2022-04-21.00:00:00 last changed 27 months ago
Proposed resolution (2022-06-24, amended 2022-07-15, approved by CWG 2022-07-15):
Change in 7.6.1.2 [expr.sub] paragraph 1 as follows:
A subscript expression is a postfix expression followed by square brackets containing a possibly empty, comma-separated list of initializer-clauseswhichthat constitute the arguments to the subscript operator. The postfix-expression and the initialization of the object parameter of any applicable subscript operator function is sequenced before each expression in the expression-list and also before any default argument. The initialization of a non-object parameter of a subscript operator function S (12.4.5 [over.sub]), including every associated value computation and side effect, is indeterminately sequenced with respect to that of any other non-object parameter of S.
Notes from the 2022-06-03 CWG telecon:
Repeating the function call rules for the subscript operator in 7.6.1.2 [expr.sub] instead would be preferred, to avoid any impression of a special case.
Notes from the 2022-05-20 CWG telecon:
A wording approach amending 12.2.2.3 [over.match.oper] paragraph 2 instead would be preferred.
Possible resolution (2022-05-21): [SUPERSEDED]
Change in 12.2.2.3 [over.match.oper] paragraph 2 as follows:
Therefore, the operator notation is first transformed to the equivalent function-call notation as summarized in Table 17 (where @ denotes one of the operators covered in the specified subclause). However, except for the subscript operator (7.6.1.2 [expr.sub]), the operands are sequenced in the order prescribed for the built-in operator (7.6 [expr.compound]).
[Accepted at the July, 2022 meeting.]
The specification about the relative sequencing of multiple parameters of the subscripting operator is missing. Also, issue 2507 adds support for default arguments for user-defined subscripting operators, but the sequencing of these is unspecified, too.
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-08-19 07:54:33 | admin | set | status: ready -> cd6 |
2022-07-15 19:32:32 | admin | set | status: open -> ready |
2022-06-24 21:34:44 | admin | set | messages: + msg6869 |
2022-06-05 09:03:57 | admin | set | messages: + msg6843 |
2022-06-05 09:03:57 | admin | set | messages: + msg6842 |
2022-04-21 13:41:07 | admin | set | messages: + msg6806 |
2022-04-21 00:00:00 | admin | create |