I am a bit confused by a sentence in the standard (I am watching draft n4849 for C++20, §7.5.5.2 - 11, i.e., [expr.prim.lambda.capture.6], or also https://eel.is/c++draft/expr.prim.lambda.capture), about what id-expression refers from the compound statement of a lambda expression.
It reads:
Every id-expression within the compound-statement of a lambda-expression that is an odr-use of an entity captured by copy is transformed into an access to the corresponding unnamed data member of the closure type.
[Note: An id-expression that is not an odr-use refers to the original entity, never to a member of the closure type. However, such an id-expression can still cause the implicit capture of the entity. — end note]
If *this is captured by copy, each expression that odr-uses *this is transformed to instead refer to the corresponding unnamed data member of the closure type.
My question is: why "instead" in last paragraph ?I have the feeling (uniquely in terms of grammar) that in last paragraph the part 'that odr-uses' should be removed, as this would provide a sense for "instead", compared to the general case where the access to the data member happens only in case of odr-use (1st paragraph), otherwise the original entity is referred (2nd paragraph).Or, another interpretation is that "instead" is for the more general term 'expression' compared to 'id-expression' but in this case my question switches into "what the standard requires about non-odr-use of *this ?"