If a range adaptor object 
adaptor accepts more than one argument,
then let 
range be an expression
such that 
decltype((range)) models 
viewable_range,
let 
args... be arguments
such that 
adaptor(range, args...) is a well-formed expression
as specified in the rest of subclause 
[range.adaptors], and
let 
BoundArgs be a pack
that denotes 
decay_t<decltype((args))>....The expression 
adaptor(args...) produces a range adaptor closure object 
f
that is a perfect forwarding call wrapper (
[func.require]) 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(r, bound_args...)- ,
where  r-  is the argument used in a function call expression of  f.
The expression 
adaptor(args...) is well-formed if and only if
the initialization of the bound argument entities of the result,
as specified above, are all well-formed
.