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

来自cppreference.com
< cpp‎ | ranges‎ | join view‎ | iterator
 
 
范围库
范围适配器
 
 
/*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) 默认构造函数。值初始化各底层迭代器,并以 nullptr 初始化底层指向父 ranges::join_view 的指针。
2)std::move(outer) 初始化底层迭代器 outer_,并以 std::addressof(parent) 初始化指向父视图的指针 parent_;然后调用 satisfy()
3) 转换 /*iterator*/<false>/*iterator*/<true>。以 std::move(i.outer_) 移动构造底层迭代器 outer_,以 std::move(i.inner_) 移动构造 inner_,并以 i.parent_ 移动构造底层指向父视图的指针 parent_

参数

parent - (可能 const 限定的)ranges::join_view
outer - 指向(可能 const 限定的)ranges::iterator_t<Base> 的迭代器
i - /*iterator*/<false>

示例