7 Concepts library [concepts.lib]

7.6 Callable concepts [concepts.lib.callable]

7.6.3 Concept RegularInvocable [concepts.lib.callable.regularinvocable]

template <class F, class... Args> concept bool RegularInvocable = Invocable<F, Args...>;

The invoke function call expression shall be equality-preserving and shall not modify the function object or the arguments ([concepts.lib.general.equality]). [ Note: This requirement supersedes the annotation in the definition of Invocable.  — end note ]

Note: A random number generator does not satisfy RegularInvocable. — end note ]

Note: The distinction between Invocable and RegularInvocable is purely semantic. — end note ]