This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

69
cppdraft/func/def.md Normal file
View File

@@ -0,0 +1,69 @@
[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)