Skip to content

Range property requirements and conservation by views

Hannes Hauswedell edited this page Apr 3, 2019 · 6 revisions

This page covers which range concepts the input of each view has to fulfil and which of these properties are preserved in the range returned by the view (and in some cases which are added).

At a later point this information shall be inserted into the individual view's documentation.

view:: \ property input forward bidirectional random_access sized
adjacent_filter r, = r, =
adjacent_remove_if
all r, = = = = =
bounded
c_str
cartesian_product
chunk
concat
const_
counted
cycle
delimit
drop_exactly
drop_while
drop
empty
filter
for_each r, = - - - -
generate_n
generate
group_by
indices
indirect
intersperse
iota
join r, = - - - -
linear_distribute
map
move
partial_sum
remove_if
repeat_n
repeat
replace_if
replace
reverse r, = r, = r, = = =
sample
set_algorithm
single
slice r, = = = = =
sliding
split
stride
tail r, = = = = =
take_exactly r, = = = = +
take_while r, = = = = -
take r, = = = = -
tokenize
transform r, = = = = =
unbounded
unique
zip_with
zip
symbol keyword description
r required this property is required on ranges given as input
- lost this property of the input range is lost in output range
= preserved this property is preserved in the output range
+ added this property is added, even if not present on input