Files
2025-10-25 03:02:53 +03:00

70 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[func.def]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#func.def)
### 22.10.3 Definitions [func.def]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11465)
The following definitions apply to this Clause:
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11468)
A [*call signature*](#def:call_signature "22.10.3Definitions[func.def]") is the name of a return type followed by a
parenthesized comma-separated list of zero or more argument types[.](#2.sentence-1)
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11472)
A [*callable type*](#def:type,callable "22.10.3Definitions[func.def]") is a function object type ([[function.objects]](function.objects "22.10Function objects")) or a pointer to member[.](#3.sentence-1)
[4](#4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11475)
A [*callable object*](#def:object,callable "22.10.3Definitions[func.def]") is an object of a callable type[.](#4.sentence-1)
[5](#5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11478)
A [*call wrapper type*](#def:call_wrapper,type "22.10.3Definitions[func.def]") is a type that holds a callable object
and supports a call operation that forwards to that object[.](#5.sentence-1)
[6](#6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11482)
A [*call wrapper*](#def:call_wrapper "22.10.3Definitions[func.def]") is an object of a call wrapper type[.](#6.sentence-1)
[7](#7)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11485)
A [*target object*](#def:target_object "22.10.3Definitions[func.def]") is the callable object held by a call wrapper[.](#7.sentence-1)
[8](#8)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11488)
A call wrapper type may additionally hold
a sequence of objects and references
that may be passed as arguments to the target object[.](#8.sentence-1)
These entities are collectively referred to
as [*bound argument entities*](#def:bound_argument_entity "22.10.3Definitions[func.def]")[.](#8.sentence-2)
[9](#9)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11495)
The target object and bound argument entities of the call wrapper are
collectively referred to as [*state entities*](#def:state_entity "22.10.3Definitions[func.def]")[.](#9.sentence-1)