<!DOCTYPE html><html lang='en'><head><title>[func.def]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='alternate stylesheet' type='text/css' href='collapsed.css' title='Notes and examples collapsed'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>19</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>19.14</a> Function objects <a class='abbr_ref' href='function.objects#func.def'>[function.objects]</a></h2><h3 ><a class='secnum' style='min-width:103pt'>19.14.2</a> Definitions <a class='abbr_ref'>[func.def]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13886'>#</a></div><div id='1.sentence-1' class='sentence'>The following definitions apply to this Clause:</div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13889'>#</a></div><div id='2.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:call_signature' id='def:call_signature'><i >call signature</i></a> is the name of a return type followed by a
parenthesized comma-separated list of zero or more argument types<a class='hidden_link' href='#2.sentence-1'>.</a></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13893'>#</a></div><div id='3.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:type,callable' id='def:type,callable'><i >callable type</i></a> is a <a href='function.objects#def:function_object,type'>function object type</a> or a pointer to member<a class='hidden_link' href='#3.sentence-1'>.</a></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13896'>#</a></div><div id='4.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:object,callable' id='def:object,callable'><i >callable object</i></a> is an object of a callable type<a class='hidden_link' href='#4.sentence-1'>.</a></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13899'>#</a></div><div id='5.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:call_wrapper,type' id='def:call_wrapper,type'><i >call wrapper type</i></a> is a type that holds a callable object
and supports a call operation that forwards to that object<a class='hidden_link' href='#5.sentence-1'>.</a></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13903'>#</a></div><div id='6.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:call_wrapper' id='def:call_wrapper'><i >call wrapper</i></a> is an object of a call wrapper type<a class='hidden_link' href='#6.sentence-1'>.</a></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13906'>#</a></div><div id='7.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:target_object' id='def:target_object'><i >target object</i></a> is the callable object held by a call wrapper<a class='hidden_link' href='#7.sentence-1'>.</a></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13909'>#</a></div><div id='8.sentence-1' class='sentence'>A call wrapper type may additionally hold
a sequence of objects and references
that may be passed as arguments to the target object<a class='hidden_link' href='#8.sentence-1'>.</a></div> <div id='8.sentence-2' class='sentence'>These entities are collectively referred to
as <a class='hidden_link' href='#def:bound_argument_entity' id='def:bound_argument_entity'><i >bound argument entities</i></a><a class='hidden_link' href='#8.sentence-2'>.</a></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/Eelis/draft73ca144c7e48612fe72742f9f6a5ec9ad6a934d2/source/utilities.tex#L13916'>#</a></div><div id='9.sentence-1' class='sentence'>The target object and bound argument entities of the call wrapper are
collectively referred to as <a class='hidden_link' href='#def:state_entity' id='def:state_entity'><i >state entities</i></a><a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></body></html>