Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
/*iterator*/ ( ) = default ;
(1) (seit 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) (seit 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) ( Nur zur Darstellung* )

Konstruiere einen Iterator.

1) Standardkonstruktor. Wertinitialisiert den parent_ mit nullptr und standardinitialisiert den current_ .
2) Konvertierung von /*iterator*/ < false > zu /*iterator*/ < true > . Initialisiert parent_ mit i. parent_ und current_ mit std :: move ( i. current_ ) .
3) Ein privater Konstruktor, der von cartesian_product_view::begin und cartesian_product_view::end verwendet wird. Dieser Konstruktor ist für Benutzer nicht zugänglich. Initialisiert parent_ mit std:: addressof ( parent ) und current_ mit std :: move ( current ) .

Parameter

i - ein /*iterator*/ < false >

Beispiel