[concept.regularinvocable] (original) (raw)
18 Concepts library [concepts]
18.7 Callable concepts [concepts.callable]
18.7.3 Concept regular_invocable [concept.regularinvocable]
template<class F, class... Args> concept [regular_invocable](#concept:regular%5Finvocable "18.7.3 Concept regular_Âinvocable [concept.regularinvocable]") = [invocable](concept.invocable#concept:invocable "18.7.2 Concept invocable [concept.invocable]")<F, Args...>;
The invoke function call expression shall be equality-preserving ([concepts.equality]) and shall not modify the function object or the arguments.
[Note 1:
This requirement supersedes the annotation in the definition ofinvocable.
— _end note_]
[Example 1:
A random number generator does not model regular_invocable.
— _end example_]
[Note 2:
The distinction between invocable and regular_invocableis purely semantic.
— _end note_]