<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 21</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="21"></A><H4>21.
  
Can a default argument for a template parameter appear in a friend declaration?
</H4>
<B>Section: </B>13.2&#160; [<A href="https://wg21.link/temp.param">temp.param</A>]
 &#160;&#160;&#160;

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

 <B>Submitter: </B>unknown
 &#160;&#160;&#160;

 <B>Date: </B>unknown<BR>





<P>13.2 [<A href="https://wg21.link/temp.param#10">temp.param</A>] paragraph 10
says:</P>
<BLOCKQUOTE>The set of default template-arguments 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 as default function arguments are (9.3.4.7 [<A href="https://wg21.link/dcl.fct.default">dcl.fct.default</A>]
)."</BLOCKQUOTE>
Can a default argument for a template argument appear in a friend declaration?
If so, when is this default argument considered for template instantiations?

<P>For example,</P>
<PRE>
    template&lt;class T1, class T2 = int&gt; class A;

    class B {
        template&lt;class T1 = int, class T2&gt; friend class A;
    };
</PRE>
Is this well-formed? If it is, should the IS say when the default argument
for <TT>T1</TT> is considered for instantiations of class <TT>A</TT>?

<P>
<B>Proposed resolution (10/00):</B> Add to the end of
13.2 [<A href="https://wg21.link/temp.param#9">temp.param</A>] paragraph 9,
</P>

<BLOCKQUOTE>
A default <I>template-argument</I> shall not be specified in a friend
template declaration.
</BLOCKQUOTE>
<P>(See also <A HREF="136.html">issue 136</A>.)</P>
<BR><BR>
</BODY>
</HTML>
