Namespaces
Variants

std::ranges::join_view<V>:: iterator <Const>:: iterator

From cppreference.net
Ranges library
Range adaptors
/*iterator*/ ( ) requires std:: default_initializable < OuterIter > &&
std:: default_initializable < InnerIter > = default ;
(1) (seit C++20)
constexpr /*iterator*/ ( Parent & parent, OuterIter outer ) ;
(2) (seit C++20)
constexpr /*iterator*/ ( /*iterator*/ < ! Const > i )

requires Const &&
std:: convertible_to < ranges:: iterator_t < V > , OuterIter > &&

std:: convertible_to < ranges:: iterator_t < InnerRng > , InnerIter > ;
(3) (seit C++20)

Konstruiert einen Iterator.

1) Standardkonstruktor. Wertinitialisiert die zugrundeliegenden Iteratoren und initialisiert den Zeiger auf das übergeordnete ranges::join_view mit nullptr .
2) Initialisiert den zugrundeliegenden outer_ Iterator mit std :: move ( outer ) , und den Zeiger auf das übergeordnete Element parent_ mit std:: addressof ( parent ) ; ruft dann satisfy() auf.
3) Konvertiert /*iterator*/ < false > zu /*iterator*/ < true > . Move-konstruiert die zugrundeliegenden Iteratoren outer_ mit std :: move ( i. outer_ ) , inner_ mit std :: move ( i. inner_ ) , und den zugrundeliegenden Zeiger auf das Elternobjekt parent_ mit i. parent_ .

Parameter

parent - ein (möglicherweise const-qualifizierter) ranges::join_view
outer - ein Iterator in (möglicherweise const-qualifiziertem) ranges:: iterator_t < Base >
i - ein /*iterator*/ < false >

Beispiel