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

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

 <B>Submitter: </B>John Wiegley
 &#160;&#160;&#160;

 <B>Date: </B>17 Aug 1998<BR>





<P>It appears from the grammar that explicit template arguments cannot
be specified for overloaded operator names. Does this mean that
template operators can never be friends?</P>

<P>But assuming that I read things wrong, then I should be able to
specify a global template '<TT>operator +</TT>' by writing:</P>

<PRE>
    friend A::B operator + &lt;&gt;(char&amp;);
</PRE>
<U>John Spicer:</U>

<P>You <B>should</B> be able to have explicit template arguments on operator
functions, but the grammar does seem to prohibit it (unless I'm reading
it incorrectly). This is an error in the grammar, they should be permitted.</P>

<P><B>Proposed resolution (10/00):</B></P>

<P>Change the grammar specified in 12.4 [<A href="https://wg21.link/over.oper#1">over.oper</A>] paragraph 1
from <BR>

<UL>
<I>operator-function-id:</I>
<UL>
<TT>operator</TT> <I>operator</I>
</UL>
</UL>

to<BR>

<UL>
<I>operator-function-id:</I>
<UL>
<TT>operator</TT> <I>operator</I><BR>
<TT>operator</TT> <I>operator</I> <TT>&lt;</TT>
<I>template-argument-list<SUB>opt</SUB></I> <TT>&gt;</TT>
</UL>
</UL>
</P>
<BR><BR>
</BODY>
</HTML>
