17 Concepts library [concepts]

17.7 Callable concepts [concepts.callable]

17.7.3 Concept RegularInvocable [concept.regularinvocable]

template<class F, class... Args> concept RegularInvocable = Invocable<F, Args...>;
The invoke function call expression shall be equality-preserving and shall not modify the function object or the arguments ([concepts.equality]).
[Note
:
This requirement supersedes the annotation in the definition of Invocable.
end note
]
[Example
:
A random number generator does not satisfy RegularInvocable.
end example
]
[Note
:
The distinction between Invocable and RegularInvocable is purely semantic.
end note
]