New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[expr.ref] and postfix-expression.template id-expression #4155
Comments
First of all, this says right in the next sentence [temp.names] p5 says (essentially) that "template" is only a parser guide. There are also some changes in this area by the pending omnibus name lookup paper I'm not seeing a defect here. |
It only claims that the result is determined. How does this answer «how the result of «postfix-expression
It could be obvious, but this doesn't seem to be specified by the standard.
Is [temp.names]/5 the paragraph you wanted to mention? I don't see it there. Could you cite the wording please? I would just propose --- a/source/expressions.tex
+++ b/source/expressions.tex
@@ -3224,7 +3224,7 @@ converted to the equivalent form \tcode{(*(E1)).E2}; the remainder of
\pnum
Abbreviating
-\grammarterm{postfix-expression}\tcode{.}\grammarterm{id-expression}
+\grammarterm{postfix-expression}\tcode{.}\opt{\terminal{template}}\grammarterm{id-expression}
as \tcode{E1.E2}, \tcode{E1} is called the \defn{object expression}.
If the object expression is of scalar type,
\tcode{E2} shall name the pseudo-destructor but I wasn't sure the form «postfix-expression |
"determined": Yes, that's exactly what it says: It says that the result is determined from the postfix-expression before the dot and the id-expression. Note the absence of "template", thus the presence or absence of "template" does not contribute to the determination of the result. Which is exactly what we want. I think your suggested change is not helpful, because it possibly equates E2 with "template id-expression", which falls apart when we dissect E2 further down. |
So, you want to say something like: paragraph 1 says that the result is determined by the expression in front of
|
Editorial meeting consensus: Yes, this does need a bit of clarification, but this should be handled by CWG. |
[expr.ref]/1:
"""
A postfix expression followed by a dot
.
or an arrow->
, optionally followed by the keywordtemplate
, and then followed by an id-expression, is a postfix expression. The postfix expression before the dot or arrow is evaluated; the result of that evaluation, together with the id-expression, determines the result of the entire postfix expression."""
[expr.ref]/3: Abbreviating «postfix-expression
.
id-expression» asE1.E2
,E1
is called the object expression...And then the subclause describes how the result of «postfix-expression
.
id-expression», a.k.a.E1.E2
, is determined.But where is it described how the result of «postfix-expression
.
template
id-expression» is determined?The text was updated successfully, but these errors were encountered: