Namespaces
Variants

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

Von de.cppreference.net
 
 
Ranges-Bibliothek
Range-Adapter
 
 
/*iterator*/() = default;
(1) (seit 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) (seit 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) (nur zur Darstellung*)

Konstruiert einen Iterator.

1) Standardkonstruktor. Wertinitialisiert die parent_ mit nullptr und standardinitialisiert die current_.
2) Konvertierung von /*iterator*/<false> nach /*iterator*/<true>. Initialisiert parent_ mit i.parent_ und current_ mit std::move(i.current_).
3) Ein privater Konstruktor, der von cartesian_product_view::begin und cartesian_product_view::end verwendet wird. Dieser Konstruktor ist für Benutzer nicht zugänglich. Initialisiert parent_ mit std::addressof(parent) und current_ mit std::move(current).

Parameter

i - ein /*iterator*/ < false >

Beispiel