C++ named requirements:RangeAdaptorClosureObjectRange adaptor closure objects are FunctionObjects that are callable via the pipe operator: