Namespaces
Variants

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

De fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plages
 
 
/*iterator*/() = default;
(1) (depuis 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) (depuis 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) (uniquement à titre d'exposition*)

Construit un itérateur.

1) Constructeur par défaut. Initialise par valeur le parent_ avec nullptr et initialise par défaut le current_.
2) Conversion de /*iterator*/<false> vers /*iterator*/<true>. Initialise parent_ avec i.parent_ et current_ avec std::move(i.current_).
3) Un constructeur privé qui est utilisé par cartesian_product_view::begin et cartesian_product_view::end. Ce constructeur n'est pas accessible aux utilisateurs. Initialise parent_ avec std::addressof(parent) et current_ avec std::move(current).

Paramètres

i - un /*iterator*/ < false >

Exemple