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) 使用 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 >

示例