Scroll to navigation

std::ranges::cartesian_product_view::iterator::iterator(3) C++ Standard Libary 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

2024.06.10 http://cppreference.com