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

イテレータを構築します。

1) デフォルトコンストラクタ。 値初期化 により基盤となるイテレータを初期化し、親 ranges::join_view へのポインタを nullptr で初期化します。
2) 基底の outer_ イテレータを std :: move ( outer ) で初期化し、親へのポインタ parent_ std:: addressof ( parent ) で初期化する。その後 satisfy() を呼び出す。
3) /*iterator*/ < false > /*iterator*/ < true > に変換します。基盤となるイテレータ outer_ std :: move ( i. outer_ ) で、 inner_ std :: move ( i. inner_ ) で、親への基盤となるポインタ parent_ i. parent_ でムーブ構築します。

パラメータ

parent - (const修飾されている可能性のある) ranges::join_view
outer - (const修飾されている可能性のある) ranges:: iterator_t < Base > へのイテレータ
i - /*iterator*/ < false > 型のイテレータ