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) (desde C++20)
constexpr /*iterator*/ ( Parent & parent, OuterIter outer ) ;
(2) (desde 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) (desde C++20)

Construye un iterador.

1) Constructor por defecto. Inicializa por valor los iteradores subyacentes, e inicializa el puntero al padre ranges::join_view con nullptr .
2) Inicializa el iterador subyacente outer_ con std :: move ( outer ) , y el puntero al padre parent_ con std:: addressof ( parent ) ; luego llama a satisfy() .
3) Convierte /*iterator*/ < false > a /*iterator*/ < true > . Construye por movimiento los iteradores subyacentes outer_ con std :: move ( i. outer_ ) , inner_ con std :: move ( i. inner_ ) , y el puntero subyacente al padre parent_ con i. parent_ .

Parámetros

padre - un (posiblemente calificado con const) ranges::join_view
externo - un iterador hacia (posiblemente calificado con const) ranges:: iterator_t < Base >
i - un /*iterator*/ < false >

Ejemplo