std::ranges::cartesian_product_view::iterator::iterator(3)

NAME
std::ranges::cartesian_product_view::iterator::iterator - std::ranges::cartesian_product_view::iterator::iterator

Synopsis
   /*iterator*/() = default; (1) (since C++23)
   constexpr /*iterator*/( /*iterator*/<!Const> i )
       requires Const && (
           std::convertible_to<ranges::iterator_t<First>,
   ranges::iterator_t<const First>> (2) (since C++23)
           && ... &&
           std::convertible_to<ranges::iterator_t<Vs>,
   ranges::iterator_t<const Vs>>
       );
   private:
   constexpr /*iterator*/(
       /*Parent*/& parent, (3) (exposition
       std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>, only*)
                  ranges::iterator_t</*maybe-const*/<Const, Vs>>...>
   current );
   Construct an iterator.
   1) Default constructor. Value-initializes the parent_ with nullptr and
   default-initializes the current_.
   2) Conversion from /*iterator*/<false> to /*iterator*/<true>. Initializes parent_
   with i.parent_ and current_ with std::move(i.current_).
   3) A private constructor which is used by cartesian_product_view::begin and
   cartesian_product_view::end. This constructor is not accessible to users.
   Initializes parent_ with std::addressof(parent) and current_ with
   std::move(current).

Parameters
   i - an /*iterator*/<false>

Example
    This section is incomplete
    Reason: no example

Category:
     * Todo no example