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 > への変換。 parent_ i. parent_ で初期化し、 current_ std :: move ( i. current_ ) で初期化する。
3) cartesian_product_view::begin および cartesian_product_view::end によって使用されるプライベートコンストラクタ。このコンストラクタはユーザーからはアクセスできない。 parent_ std:: addressof ( parent ) で初期化し、 current_ std :: move ( current ) で初期化する。

パラメータ

i - an /*iterator*/ < false >