| ||||||||||||||||||||||
| Range primitives | |||||||
| |||||||
| Range concepts | |||||||||||||||||||
| |||||||||||||||||||
| Range factories | |||||||||
| |||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helper items | |||||||||||||||||
| |||||||||||||||||
template<bool Const> class/*iterator*/ | (exposition only*) | |
ranges::join_with_view<V, Pattern>::iterator is the type of the iterators returned bybegin() andend() ofranges::join_with_view<V, Pattern>.
The state of an iterator of this class is managed as if there are two nested iterators:
parent_Base modelsforward_range, it isouter_it_.parent_ ->outer_it_.inner_it_ into the pattern rangeparent_ ->pattern_ or into a child range of the parent rangeThis iterator class has the invariant that the inner iterator is always dereferenceable unless the outer iterator is not dereferenceable. When an iterator is constructed, incremented or decremented, its outer iterator might be adjusted to hold the invariant.
Contents |
| Const | - | whether the iterator is a constant iterator |
Exposition-only types | |
| Type | Definition |
Parent | maybe-const <Const,ranges::join_with_view<V, Pattern>>(exposition-only member type*) |
Base | maybe-const <Const, V>(exposition-only member type*) |
InnerBase | ranges::range_reference_t<Base >(exposition-only member type*) |
PatternBase | maybe-const <Const, Pattern>(exposition-only member type*) |
OuterIter | ranges::iterator_t<Base >(exposition-only member type*) |
InnerIter | ranges::iterator_t<InnerBase >(exposition-only member type*) |
PatternIter | ranges::iterator_t<PatternBase >(exposition-only member type*) |
Iterator property types | |
| Type | Definition |
iterator_concept | aniterator tag,see below |
iterator_category(conditionally present) | an iterator tag,see below |
value_type | std::common_type_t<ranges::range_value_t< |
difference_type | std::common_type_t<ranges::range_difference_t< |
iterator_concept is defined as follows:
iterator_concept denotesstd::bidirectional_iterator_tag:InnerBase > istrue.Base modelsbidirectional_range.InnerBase andPatternBase each modelcommon_range.iterator_concept denotesstd::forward_iterator_tag:InnerBase > istrue.Base andInnerBase each modelforward_range.iterator_concept denotesstd::input_iterator_tag.Given the following types:
OuterC bestd::iterator_traits<OuterIter >::iterator_category.InnerC bestd::iterator_traits<InnerIter >::iterator_category.PatternC bestd::iterator_traits<PatternIter >::iterator_category.iterator_category is defined if and only ifstd::is_reference_v<InnerBase > istrue, andBase andInnerBase each modelforward_range. In this case, it is defined as follows:
InnerBase >, ranges::range_reference_t<PatternBase >> isfalse,iterator_category denotesstd::input_iterator_tag.iterator_category denotesstd::bidirectional_iterator_tag:OuterC,InnerC, andPatternC each modelstd::derived_from<std::bidirectional_iterator_tag>.InnerBase andPatternBase each modelcommon_range.OuterC,InnerC, andPatternC each modelstd::derived_from<std::forward_iterator_tag>,iterator_category denotesstd::forward_iterator_tag.iterator_category denotesstd::input_iterator_tag.| Member | Description |
Parent *parent_ | the pointer to the parentjoin_with_view(exposition-only member object*) |
OuterIterouter_it_(present only if Base modelsforward_range) | the outer iterator (exposition-only member object*) |
std::variant<PatternIter , InnerIter >inner_it_ | the inner iterator (exposition-only member object*) |
| constructs an iterator (public member function) | |
| accesses the element (public member function) | |
| advances or decrements the underlying iterator (public member function)[edit] |
(C++23) | compares the underlying iterators (function) |
(C++23) | casts the result of dereferencing the underlying iterator to its associated rvalue reference type (function) |
(C++23) | swaps the objects pointed to by two underlying iterators (function) |