<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 33</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="33"></A><H4>33.
  
Argument dependent lookup and overloaded functions
</H4>
<B>Section: </B>6.5.4&#160; [<A href="https://wg21.link/basic.lookup.argdep">basic.lookup.argdep</A>]
 &#160;&#160;&#160;

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

 <B>Submitter: </B>Jason Merrill
 &#160;&#160;&#160;

 <B>Date: </B>15 Jul 1998<BR>





<P>If an argument used for lookup is the address of a group of overloaded
functions, are there any associated namespaces or classes? What if it's
the address of a function template?</P>

<P>My inclination is to say no to both.</P>

<P><U>From Mike Miller:</U></P>

<P>We discussed this on the reflector a few weeks ago. I'll leave the template
case for the Core III experts, but I'd find it surprising if the overload
case weren't handled as the obvious generalization of the single-function
case. For a single function, the associated namespaces are those of the
types used in the parameters and return type; I would expect that using
an overloaded function name would simply be the union of the namespaces
from the members of the overload set. That would be the simplest and most
intuitive, IMHO &#8212; is there an argument for doing it differently?</P>

<P>
<B>Proposed Resolution (04/99):</B>
In 6.5.4 [<A href="https://wg21.link/basic.lookup.argdep#2">basic.lookup.argdep</A>] paragraph 2,

add following the last bullet in the list of associated classes and namespaces
for various argument types (not a bullet itself because overload sets and
templates do not have a type):</P>
<BLOCKQUOTE>In addition, if the argument is the name or address of a set
of overloaded functions and/or function templates, its associated classes
and namespaces are the union of those associated with each of the members
of the set: the namespace in which the function or function template is
defined and the classes and namespaces associated with its (non-dependent)
parameter types and return type.</BLOCKQUOTE>
<BR><BR>
</BODY>
</HTML>
