Template Class flattened_rangenest

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

  • public ranges::view_facade< flattened_rangenest< RangeNest > >

Class Documentation

template<typename RangeNest>
class flattened_rangenest : public ranges::view_facade<flattened_rangenest<RangeNest>>

a flattened view over a nest of ranges

Note

this is just like view::join, but its iterator provides not only elements but also their indices as well as the host ranges. this is needed to be able to iterate over pairs of elements while skipping pairs of elements from the same subrange

Template Parameters:

RangeNest – the type of a nest of ranges; use flattened_rangenest for RangeNest if you want recursive flattening.

Public Types

using base_type = ranges::view_facade<flattened_rangenest<RangeNest>>
using value_type = typename RangeNest::value_type::value_type
using iterator = ranges::basic_iterator<cursor>
using const_iterator = ranges::basic_iterator<const cursor>

Public Functions

flattened_rangenest() = default
inline explicit flattened_rangenest(RangeNest *r)
flattened_rangenest(const flattened_rangenest&) = default
flattened_rangenest(flattened_rangenest&&) = default
flattened_rangenest &operator=(const flattened_rangenest&) = default
flattened_rangenest &operator=(flattened_rangenest&&) = default
inline RangeNest *range() const