<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 1880</TITLE>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<STYLE TYPE="text/css">
  INS { text-decoration:none; font-weight:bold; background-color:#A0FFA0 }
  .INS { text-decoration:none; background-color:#D0FFD0 }
  DEL { text-decoration:line-through; background-color:#FFA0A0 }
  .DEL { text-decoration:line-through; background-color: #FFD0D0 }
  @media (prefers-color-scheme: dark) {
    HTML { background-color:#202020; color:#f0f0f0; }
    A { color:#5bc0ff; }
    A:visited { color:#c6a8ff; }
    A:hover, a:focus { color:#afd7ff; }
    INS { background-color:#033a16; color:#aff5b4; }
    .INS { background-color: #033a16; }
    DEL { background-color:#67060c; color:#ffdcd7; }
    .DEL { background-color:#67060c; }
  }
  SPAN.cmnt { font-family:Times; font-style:italic }
</STYLE>
</HEAD>
<BODY>
<P><EM>This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21
  Core Issues List revision 118b.
  See http://www.open-std.org/jtc1/sc22/wg21/ for the official
  list.</EM></P>
<P>2025-09-28</P>
<HR>
<A NAME="1880"></A><H4>1880.
  
When are parameter objects destroyed?
</H4>
<B>Section: </B>7.6.1.3&#160; [<A href="https://wg21.link/expr.call">expr.call</A>]
 &#160;&#160;&#160;

 <B>Status: </B>CD4
 &#160;&#160;&#160;

 <B>Submitter: </B>Hubert Tong
 &#160;&#160;&#160;

 <B>Date: </B>2014-02-25<BR>


<P>[Adopted at the June, 2016 meeting as part of paper P0135R1.]</P>



<P>According to 7.6.1.3 [<A href="https://wg21.link/expr.call#4">expr.call</A>] paragraph 4,</P>

<BLOCKQUOTE>

 The lifetime of a parameter ends when the function in which it is defined
 returns. The initialization and destruction of each parameter occurs
 within the context of the calling function.

</BLOCKQUOTE>

<P>This presumably means that the destruction of the parameter object
occurs before the end of the full-expression, unlike temporaries.
This is not what current implementations do, however.  It is not clear
that a change to treat parameter objects like temporaries, to match
existing practice, would be an improvement, however, as it would
result in ABI breakage for implementations that destroy parameters in
the called function.</P>

<P>See also <A HREF="1935.html">issue 1935</A> for a related
question regarding the handling of arguments to a placement
allocation function and placement deallocation function.</P>

<P><B>Notes from the June, 2014 meeting:</B></P>

<P>WG decided to make it unspecified whether parameter objects are
destroyed immediately following the call or at the end of the
full-expression to which the call belongs.  This approach also
resolves <A HREF="1935.html">issue 1935</A>.</P>




<BR><BR>
</BODY>
</HTML>
