If a pipeable sender adaptor object adaptor accepts more than one argument,
then let
sndr be an expression
such that
decltype((sndr)) models
sender,
let
args... be arguments
such that
adaptor(sndr, args...) is a well-formed expression
as specified below, and
let
BoundArgs be a pack that denotes
decltype(auto(args)).... The expression
adaptor(args...) produces
a pipeable sender adaptor closure object
f
that is a perfect forwarding call wrapper with the following properties:
Its target object is a copy of adaptor
.Its bound argument entities
bound_args consist of
objects of types
BoundArgs... direct-non-list-initialized with
std::forward<decltype((args))>(args)..., respectively
.Its call pattern is
adaptor(rcvr, bound_args...),
where
rcvr is
the argument used in a function call expression of
f.
The expression
adaptor(args...) is well-formed if and only if
the initializations of the bound argument entities of the result,
as specified above, are all well-formed
.