std::ranges::join_with_view<V,Pattern>::iterator<Const>::iterator
From cppreference.com
< cpp | ranges | join with view | iterator
| /*iterator*/() = default; |
(1) | (since C++23) |
| constexpr /*iterator*/( /*iterator*/<!Const> i ) requires Const && |
(2) | (since C++23) |
constexpr /*iterator*/( /*Parent*/& parent, /*OuterIter*/ outer ) requires std::forward_range</*Base*/>; |
(3) | (since C++23) (exposition only*) |
constexpr explicit /*iterator*/( /*Parent*/ parent ) requires (!std::forward_range</*Base*/>); |
(4) | (since C++23) (exposition only*) |
Construct an iterator. Overloads (3,4) are called by begin() and end() of ranges::join_with_view.
| Overload | Data members | ||
|---|---|---|---|
parent_
|
outer_it_
|
inner_it_
| |
| (1) | initialized with nullptr | value-initialized (only if Base models forward_range)
|
default-initialized |
| (2) | initialized with i.parent_
|
initialized with std::move(i.outer_it_ (only if Base models forward_range)
| |
| (3) | initialized with std::addressof(parent) |
initialized with std::move(outer) | |
| (4) | N/A | ||
2) After initializing the data members, equivalent to
if (i.inner_it_ .index() == 0)
inner_it_ .template emplace<0>(std::get<0>(std::move(i.inner_it_ )));
else
inner_it_ .template emplace<1>(std::get<1>(std::move(i.inner_it_ )));
3,4) After initializing the data members, adjust the outer iterator as if the inner iterator was incremented by
operator++().Parameters
| i | - | a mutable iterator |
| parent | - | a std::ranges::join_with_view object |
| outer | - | an iterator into the underlying range of parent |
Example
| This section is incomplete Reason: no example |