Defined in header
template < class F, class... Args >
concept bool RegularInvocable = Invocable<F, Args...>;
Invocable concept specifies that a callable type
F can be called with a set of argument type
Args... using the function ranges::invoke.
RegularInvocable concept adds to the
Invocable concept by requiring the
invoke expression to be equality preserving and not modify either the function object or the arguments.
 Equality preservation
An expression is equality preserving if it results in equal outputs given equal inputs.
- The inputs to an expression consist of its operands.
- The outputs of an expression consist of its result and all operands modified by the expression (if any).
Every expression required to be equality preserving is further required to be stable: two evaluations of such an expression with the same input objects must have equal outputs absent any explicit intervening modification of those input objects.
The distinction between
RegularInvocable is purely semantic.