std::ranges::join_view<V>::iterator
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Ranges library
(C++23)(C++23)
(C++26)(C++26)
(C++23)(C++23)
(C++26)(C++26)
(C++26)(C++26)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
std::ranges::join_view
Iterator
template< bool Const >
class /*iterator*/
(since C++20) class /*iterator*/
(exposition only*)
The return type of join_view::begin
, and of join_view::end
when both the outer range V
and the inner range ranges::range_reference_t <V> satisfy common_range
and the parent join_view
is a forward_range
.
If V
is not a simple view (e.g. if ranges::iterator_t <const V> is invalid or different from ranges::iterator_t <V>), Const
is true for iterators returned from the const overloads, and false otherwise. If V
is a simple view, Const
is true if and only if ranges::range_reference_t <V> is a reference.
[edit] Member types
Member
Definition
iterator_concept
- std::bidirectional_iterator_tag , if ranges::range_reference_t <Base> is a reference type, and
Base
and ranges::range_reference_t <Base> each modelbidirectional_range
;
- std::forward_iterator_tag , if ranges::range_reference_t <Base> is a reference type, and
Base
and ranges::range_reference_t <Base> each modelforward_range
;
- std::input_iterator_tag otherwise.
iterator_category
(conditionally present) Defined only if
iterator::iterator_concept
(see above) denotes std::forward_iterator_tag .Let OUTERC
be std::iterator_traits <ranges::iterator_t <Base>>::iterator_category, and let INNERC
be std::iterator_traits <ranges::iterator_t <ranges::range_reference_t <Base>>>::
iterator_category.
- std::bidirectional_iterator_tag , if
OUTERC
andINNERC
each model std::derived_from <std::bidirectional_iterator_tag >;
- std::forward_iterator_tag , if
OUTERC
andINNERC
each model std::derived_from <std::forward_iterator_tag >;
- std::input_iterator_tag otherwise.
value_type
ranges::range_value_t <ranges::range_reference_t <Base>>
difference_type
std::common_type_t <ranges::range_difference_t <Base>,ranges::range_difference_t <ranges::range_reference_t <Base>>>
[edit] Data members
Member
Definition
OuterIter
outer_
(private)
An outer iterator(exposition-only member object*)
InnerIter
inner_
(private)
An inner iterator(exposition-only member object*)
Parent*
parent_
(private)
A pointer to the parent object(exposition-only member object*)
[edit] Member functions
advances or decrements the underlying iterators
(public member function)
(public member function)
[edit] Non-member functions
(C++20)
(function)