std::ranges::join_with_view<V,Pattern>::iterator<Const>::iterator
ja.cppreference.net より
/*iterator*/() = default;
|
(1) | (C++23以上) |
constexpr /*iterator*/( /*iterator*/<!Const> i )
requires Const &&
std::convertible_to<ranges::iterator_t<V>, /*OuterIter*/> &&
std::convertible_to<ranges::iterator_t</*InnerRng*/>,
/*InnerIter*/> &&
std::convertible_to<ranges::iterator_t<Pattern>, /*PatternIter*/>;
|
(2) | (C++23以上) |
constexpr /*iterator*/( /*Parent*/& parent, /*OuterIter*/ outer )
requires std::forward_range</*Base*/>;
|
(3) | (C++23以上) (説明専用*) |
constexpr explicit /*iterator*/( /*Parent*/ parent )
requires (!std::forward_range</*Base*/>);
|
(4) | (C++23以上) (説明専用*) |
イテレータを構築する。多重定義 (3,4) は ranges::join_with_view の begin() と end() によって呼ばれる。
| 多重定義 | データメンバ | ||
|---|---|---|---|
parent_
|
outer_it_
|
inner_it_
| |
| (1) | nullptr
|
値初期化 で初期化される( Base が forward_range をモデル化する場合のみ)
|
デフォルト初期化 |
| (2) | i.parent_
|
で初期化されるstd::move(i.outer_it_ ( Base が forward_range をモデル化する場合のみ)
| |
| (3) | で初期化されるstd::addressof(parent)
|
で初期化されるstd::move(outer)
| |
| (4) | なし | ||
2) データメンバを初期化した後、以下と等価
if (i.inner_it_ .index() == 0)
inner_it_ .template emplace<0>(std::get<0>(std::move(i.inner_it_ )));
else
inner_it_ .template emplace<1>(std::get<1>(std::move(i.inner_it_ )));
。
パラメータ
| i | - | 変更可能なイテレータ |
| parent | - | std::ranges::join_with_view オブジェクト |
| outer | - | parent の基盤となる範囲へのイテレータ |
例
|
このセクションは不完全です
理由: 例がありません |