Namespaces
Variants

std::ranges::join_view<V>::iterator<Const>::iterator

С сайта ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
/*iterator*/() requires std::default_initializable<OuterIter> &&
                        std::default_initializable<InnerIter> = default;
(1) (начиная с C++20)
constexpr /*iterator*/( Parent& parent, OuterIter outer );
(2) (начиная с C++20)
constexpr /*iterator*/( /*iterator*/<!Const> i )
    requires Const &&
             std::convertible_to<ranges::iterator_t<V>, OuterIter> &&
             std::convertible_to<ranges::iterator_t<InnerRng>, InnerIter>;
(3) (начиная с C++20)

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

1) Конструктор по умолчанию. Инициализирует значением базовые итераторы и инициализирует указатель на родительский ranges::join_view значением nullptr.
2) Инициализирует базовый outer_ итератор значением std::move(outer), а указатель на родительский parent_ значением std::addressof(parent); затем вызывает satisfy().
3) Преобразует /*iterator*/<false> в /*iterator*/<true>. Перемещает базовые итераторы outer_ со значением std::move(i.outer_), inner_ со значением std::move(i.inner_) и базовый указатель на родительский parent_ со значением i.parent_.

Параметры

родительский - (возможно, квалифицированный как const) ranges::join_view
внешний - итератор в (возможно, квалифицированный как const) ranges:: iterator_t < Base >
i - /*итератор*/ < false >

Пример