For
a range adaptor closure object
C and an expression
R such that
decltype((R)) models
viewable_range, the following
expressions are equivalent and yield a
view:
C(R)
R | C
Given an additional range adaptor closure object D,
the expression C | D is well-formed and produces another range adaptor
closure object such that the following two expressions are equivalent:
R | C | D
R | (C | D)
If a range adaptor object accepts more than one argument,
then the following expressions are equivalent:
adaptor(range, args...)
adaptor(args...)(range)
range | adaptor(args...)
In this case,
adaptor(args...) is a range adaptor
closure object
.