48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
[concept.regularinvocable]
|
||
|
||
# 18 Concepts library [[concepts]](./#concepts)
|
||
|
||
## 18.7 Callable concepts [[concepts.callable]](concepts.callable#concept.regularinvocable)
|
||
|
||
### 18.7.3 Concept regular_invocable [concept.regularinvocable]
|
||
|
||
[ð](#concept:regular_invocable)
|
||
|
||
`template<class F, class... Args>
|
||
concept [regular_invocable](#concept:regular_invocable "18.7.3 Concept regular_invocable [concept.regularinvocable]") = [invocable](concept.invocable#concept:invocable "18.7.2 Concept invocable [concept.invocable]")<F, Args...>;
|
||
`
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/concepts.tex#L1244)
|
||
|
||
The invoke function call expression shall be
|
||
equality-preserving ([[concepts.equality]](concepts.equality "18.2 Equality preservation")) and
|
||
shall not modify the function object or the arguments[.](#1.sentence-1)
|
||
|
||
[*Note [1](#note-1)*:
|
||
|
||
This requirement supersedes the annotation in the definition of[invocable](concept.invocable#concept:invocable "18.7.2 Concept invocable [concept.invocable]")[.](#1.sentence-2)
|
||
|
||
â *end note*]
|
||
|
||
[2](#2)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/concepts.tex#L1253)
|
||
|
||
[*Example [1](#example-1)*:
|
||
|
||
A random number generator does not model [regular_invocable](#concept:regular_invocable "18.7.3 Concept regular_invocable [concept.regularinvocable]")[.](#2.sentence-1)
|
||
|
||
â *end example*]
|
||
|
||
[3](#3)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/concepts.tex#L1258)
|
||
|
||
[*Note [2](#note-2)*:
|
||
|
||
The distinction between [invocable](concept.invocable#concept:invocable "18.7.2 Concept invocable [concept.invocable]") and [regular_invocable](#concept:regular_invocable "18.7.3 Concept regular_invocable [concept.regularinvocable]") is purely semantic[.](#3.sentence-1)
|
||
|
||
â *end note*]
|