Namespaces
Variants

std::ranges::transform_view<V,F>:: iterator <Const>:: iterator

From cppreference.net
Ranges library
Range adaptors
/*итератор*/ ( )
требует std:: default_initializable < ranges:: iterator_t < Base >> = default ;
(1) (начиная с C++20)
constexpr /*итератор*/ ( Parent & parent, ranges:: iterator_t < Base > current ) ;
(2) (начиная с C++20)
constexpr /*итератор*/ ( /*итератор*/ < ! Const > i )

требует Const &&

std:: convertible_to < ranges:: iterator_t < V > , ranges:: iterator_t < Base >> ;
(3) (начиная с C++20)

Создать итератор.

1) Конструктор по умолчанию. Выполняет инициализацию значением базового итератора и инициализирует указатель на родительское представление transform_view значением nullptr .
2) Инициализирует базовый итератор с помощью std :: move ( current ) , а указатель на родительский элемент с помощью std:: addressof ( parent ) .
3) Преобразование из /*iterator*/ < false > в /*iterator*/ < true > . Перемещающее конструирование соответствующих членов.

Параметры

parent - (возможно const-квалифицированный) std::ranges::transform_view
current - итератор в (возможно const-квалифицированный) V
i - /*iterator*/ < false >

Пример