Namespaces
Variants

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

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rangos
 
 
/*iterator*/() = default;
(1) (desde 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) (desde 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) (solo para exposición*)

Construye un iterador.

1) Constructor por defecto. Inicializa por valor el parent_ con nullptr e inicializa por defecto el current_.
2) Conversión de /*iterator*/<false> a /*iterator*/<true>. Inicializa parent_ con i.parent_ y current_ con std::move(i.current_).
3) Un constructor privado que es usado por cartesian_product_view::begin y cartesian_product_view::end. Este constructor no es accesible para los usuarios. Inicializa parent_ con std::addressof(parent) y current_ con std::move(current).

Parámetros

i - un /*iterator*/ < false >

Ejemplo