<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 763</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="763"></A><H4>763.
  
Is a closure object's <TT>operator()</TT> inline?
</H4>
<B>Section: </B>7.5.6.2&#160; [<A href="https://wg21.link/expr.prim.lambda.closure">expr.prim.lambda.closure</A>]
 &#160;&#160;&#160;

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

 <B>Submitter: </B>Daveed Vandevoorde
 &#160;&#160;&#160;

 <B>Date: </B>6 February, 2009<BR>


<P>[Voted into the WP at the July, 2009 meeting as part of N2927.]</P>

<P>A lambda expression appearing in local scope presumably creates a
local class (in the sense of 11.6 [<A href="https://wg21.link/class.local">class.local</A>]) as the type of the
closure object, because that class is &#8220;considered to be defined at
the point where the lambda expression occurs&#8221;
(7.5.6 [<A href="https://wg21.link/expr.prim.lambda#7">expr.prim.lambda</A>] paragraph 7), and in the absence of any
indication to the contrary that class must satisfy the restrictions of
11.6 [<A href="https://wg21.link/class.local">class.local</A>] on local classes.  One such restriction is that
all its member functions must be defined within the class definition,
making them inline.  However, nothing is said about whether the function
call operator for a non-local closure class is inline, and even for the
local case it would be better if the specification were explicit.
</P>

<P><B>Proposed resolution (July, 2009)</B></P>

<P>See document PL22.16/09-0117 = WG21 N2927.</P>

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