Namespaces
Variants

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

ja.cppreference.net から
 
 
範囲ライブラリ
範囲アダプタ
 
 
/*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_ iterator を 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 > 型のイテレータ

例