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

来自cppreference.com
 
 
范围库
范围适配器
 
 
/*iterator*/() = default;
(1) (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) (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) (仅用于阐述*)

构造迭代器。

1) 默认构造函数。以 nullptr 值初始化 parent_默认初始化 current_
2)/*iterator*/<false> 转换为 /*iterator*/<true>。以 i.parent_ 初始化 parent_、以 std::move(i.current_) 初始化 current_
3) 用于 cartesian_product_view::begincartesian_product_view::end 的私有构造函数。用户不可访问此构造函数。 以 std::addressof(parent) 初始化 parent_ 并以 std::move(current) 初始化 current_

参数

i - /*iterator*/<false>

示例