<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 1922</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="1922"></A><H4>1922.
  
Injected class template names and default arguments
</H4>
<B>Section: </B>13.8.2&#160; [<A href="https://wg21.link/temp.local">temp.local</A>]
 &#160;&#160;&#160;

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

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

 <B>Date: </B>2014-05-05<BR>


<P>[Moved to DR at the May, 2015 meeting.]</P>



<P>Use of the injected-class-name of a class template with a
<I>template-argument-list</I> that relies on default arguments is
not clearly specified in the current wording of the Standard.  In
particular, according to 13.2 [<A href="https://wg21.link/temp.param#10">temp.param</A>] paragraph 10,</P>

<BLOCKQUOTE>

The set of default <I>template-argument</I>s available for use with a
template declaration or definition is obtained by merging the default
arguments from the definition (if in scope) and all declarations in scope
in the same way default function arguments are
(9.3.4.7 [<A href="https://wg21.link/dcl.fct.default">dcl.fct.default</A>]).

</BLOCKQUOTE>

<P>However, the injected-class-name hides the template declarations,
so it is not clear whether the default arguments are available at
that point or not.</P>

<P><B>Proposed resolution (November, 2014):</B></P>

<P>Change 13.2 [<A href="https://wg21.link/temp.param#10">temp.param</A>] paragraph 10 as follows:</P>

<BLOCKQUOTE>

The set of default <I>template-argument</I>s available for
use <DEL>with a template declaration or definition</DEL> is
obtained by merging the default arguments from <DEL>the
definition (if in scope) and</DEL> all <INS>prior</INS>
declarations <DEL>in scope</DEL> <INS>of the template</INS>
in the same way default function arguments are
(9.3.4.7 [<A href="https://wg21.link/dcl.fct.default">dcl.fct.default</A>]). [<I>Example:</I>...

</BLOCKQUOTE>

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