<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 1232</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="1232"></A><H4>1232.
  
Creation of array temporaries using a <I>braced-init-list</I>
</H4>
<B>Section: </B>9.5.5&#160; [<A href="https://wg21.link/dcl.init.list">dcl.init.list</A>]
 &#160;&#160;&#160;

 <B>Status: </B>C++11
 &#160;&#160;&#160;

 <B>Submitter: </B>Andrew Koenig
 &#160;&#160;&#160;

 <B>Date: </B>2011-01-03<BR>


<P>[Voted into the WP at the March, 2011 meeting as part of paper N3262.]</P>



<P>By analogy with the variable definition</P>

<PRE>
    int arr[3] = {1, 2, 3};
</PRE>

<P>it should be possible to write something like</P>

<PRE>
   void f(const int(&amp;)[3]);
   void g() {
     f({1, 2, 3});
   }
</PRE>

<P>There are currently at least two problems with the latter usage.
First, the variable initializer relies on brace elision, which appears
to be defined only for variable declarations (9.5.2 [<A href="https://wg21.link/dcl.init.aggr#11">dcl.init.aggr</A>] paragraph 11)
, and possibly only for certain forms of variable
declarations.</P>

<P>Second, the call would require creation of an array temporary to
which the parameter reference would be bound, and the current Standard
does not describe array temporaries (although rvalue arrays can occur
as members of class rvalues).  This is also contrary to the direction
established by CWG in considering <A HREF="1058.html">1058</A>.</P>

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