Namespaces
Variants

std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: iterator

From cppreference.net
Ranges library
Range adaptors
/*iterator*/ ( ) = default ;
(1) (自 C++23 起)
constexpr /*iterator*/ ( /*iterator*/ < ! Const > i )

requires Const && (
std:: convertible_to < ranges:: iterator_t < First > , ranges:: iterator_t < const First >>
&& ... &&
std:: convertible_to < ranges:: iterator_t < Vs > , ranges:: iterator_t < const Vs >>

) ;
(2) (自 C++23 起)
private :

constexpr /*iterator*/ (
/*Parent*/ & parent,
std:: tuple < ranges:: iterator_t < /*maybe-const*/ < Const, First >> ,

ranges:: iterator_t < /*maybe-const*/ < Const, Vs >> ... > current ) ;
(3) ( 仅用于说明* )

构造一个迭代器。

1) 默认构造函数。 值初始化 parent_ nullptr ,并 默认初始化 current_
2) /*iterator*/ < false > /*iterator*/ < true > 的转换。使用 i. parent_ 初始化 parent_ ,并使用 std :: move ( i. current_ ) 初始化 current_
3) 一个私有构造函数,由 cartesian_product_view::begin cartesian_product_view::end 使用。该构造函数对用户不可访问。 使用 std:: addressof ( parent ) 初始化 parent_ ,并使用 std :: move ( current ) 初始化 current_

参数

i - 一个 /*iterator*/ < false >

示例