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

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

requires Const &&

std:: convertible_to < /*inner-iterator*/ < false > , /*inner-iterator*/ < Const >> ;
(2) (since C++23)
private :
constexpr /*iterator*/ ( Parent & parent, /*inner-iterator*/ < Const > inner ) ;
(3) ( exposition only* )

Construct an iterator.

1) Default constructor. Value-initializes the underlying pointer parent_ with nullptr , and default-initializes the underlying iterator inner_ .
2) Conversion from /*iterator*/ < false > to /*iterator*/ < true > . Initializes the underlying pointer parent_ with i. parent_ , and move constructs the underlying iterator inner_ with std::move ( i. inner_ ) .
3) This iterator also has a private constructor which is used by ranges::adjacent_transform_view::begin and ranges::adjacent_transform_view::end . This constructor is not accessible to users. Initializes parent_ with std:: addressof ( parent ) , and move constructs inner_ with std :: move ( inner ) .

Parameters

i - an /*iterator*/ < false >
parent - an owning object of type adjacent_transform_view
inner - an iterator of type adjacent_transform_view:: inner_iterator

Example