Namespaces
Variants

std::ranges::adjacent_transform_view<V,F,N>:: iterator <Const>:: iterator

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

erfordert Const &&

std:: convertible_to < /*inner-iterator*/ < false > , /*inner-iterator*/ < Const >> ;
(2) (seit C++23)
private :
constexpr /*iterator*/ ( Parent & parent, /*inner-iterator*/ < Const > inner ) ;
(3) ( nur zur Darstellung* )

Konstruiere einen Iterator.

1) Standardkonstruktor. Wertinitialisiert den zugrundeliegenden Zeiger parent_ mit nullptr , und standardinitialisiert den zugrundeliegenden Iterator inner_ .
2) Konvertierung von /*iterator*/ < false > zu /*iterator*/ < true > . Initialisiert den zugrundeliegenden Zeiger parent_ mit i. parent_ und bewegt-konstruiert den zugrundeliegenden Iterator inner_ mit std::move ( i. inner_ ) .
3) Dieser Iterator besitzt ebenfalls einen privaten Konstruktor, der von ranges::adjacent_transform_view::begin und ranges::adjacent_transform_view::end verwendet wird. Dieser Konstruktor ist für Benutzer nicht zugänglich. Initialisiert parent_ mit std:: addressof ( parent ) und move-konstruiert inner_ mit std :: move ( inner ) .

Parameter

i - ein /*iterator*/ < false >
parent - ein besitzendes Objekt vom Typ adjacent_transform_view
inner - ein Iterator vom Typ adjacent_transform_view:: inner_iterator

Beispiel