<HTML>
<HEAD>
<TITLE>
P0400R0 2016-06-25
</TITLE>
</HEAD>
<BODY>
<TABLE ALIGN="RIGHT" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD ALIGN="RIGHT">
      Document number:
     </TD>
<TD>
       &#160;P0400R0</TD>
</TR>
<TR>
<TD ALIGN="RIGHT">
      Date:
     </TD>
<TD>
      &#160;2016-06-25</TD>
</TR>
<TD ALIGN="RIGHT">
      Project:
     </TD>
<TD>
      &#160;Programming Language C++
     </TD>
</TR>
<TR>
<TD ALIGN="RIGHT">
      Reference:
     </TD>
<TD>
      &#160;ISO/IEC IS 14882:2014
     </TD>
</TR>
<TR>
<TD ALIGN="RIGHT">
      Reply to:
     </TD>
<TD>
      &#160;William M. Miller
     </TD>
</TR>
<TR>
<TD></TD>
<TD>
      &#160;Edison Design Group, Inc.
     </TD>
</TR>
<TR>
<TD></TD>
<TD>
      &#160;<A HREF="mailto://wmm@edg.com">wmm@edg.com</A></TD>
</TR>
<TR>
<TD ALIGN="right">Audience:</TD>
<TD>&#160;All</TD>
</TR>
</TABLE><BR CLEAR="ALL"><BR><CENTER>

<H2>
Wording for Order of Evaluation of Function Arguments
</H2>
<BR/>
<P ALIGN="left">In the 2016-06-24 plenary session of WG21, paper P0145R3
("Refining Expression Evaluation Order for Idiomatic C++")
was adopted, except that the alternative wording for 5.2.2 [expr.call]
paragraph 4 describing the indeterminate sequencing of function argument
evaluation was adopted instead of the wording from the primary
proposal:</P>

<BLOCKQUOTE>

<P ALIGN="left">The value computation and associated side-effect of the
postfix-expression are sequenced before those of the expressions in
the <I>expression-list</I>. The initializations of the declared parameters
are indeterminately sequenced with no interleaving.</P>

</BLOCKQUOTE>

<P ALIGN="left">This wording had not been considered by the Core Language
Working Group during its review of the proposal. Having now reviewed this
wording, CWG believes that the following wording would be preferable to
implement the expressed intent of the modified proposal and requests the
project editor to apply this version instead of the wording from
P0145R3:</P>

<BLOCKQUOTE>

<P ALIGN="left">The <I>postfix-expression</I> is sequenced before each
<I>expression</I> in the <I>expression-list</I> and any default
argument. The initialization of a parameter, including every associated
value computation and side effect, is indeterminately sequenced with
respect to that of any other parameter.</P>

</BLOCKQUOTE>
</BODY>
</HTML>
