Closed
Description
In this paragraph there is the following code sample:
S s1(1); // full-expression is call of S::S(int)
Why is the full-expression the call to the constructor and not the entire construct (init-declarator) itself? (In the same paragraph (p 12.3) it says that an init-declarator is a full-expression.)
Activity
jensmaurer commentedon Sep 15, 2017
What's the difference in this case?
RazvanAM commentedon Sep 19, 2017
There is no difference in behaviour, I think it is just a minor inconsistency in wording.
I tracked the evolution of the paragraph describing full-expressions and I discovered that the code sample that I cited was written even before the passage: "If a language construct is defined to produce an implicit call of a function, a use of the language construct is considered to be an expression for the purposes of this definition" was added. And those samples remained the same, even after other changes were made to the paragraph. I actually sent you an e-mail regarding this (at Jens.Maurer@gmx.net, as I saw you handled a change to paragraphs which describe full-expressions: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0507r0.html).
jensmaurer commentedon Nov 7, 2017
Editorial meeting consensus: "is" -> "comprises"
[intro.execution] Clarify full-expression in example.
[intro.execution] Clarify full-expression in example.
[intro.execution] Clarify full-expression in example.