Namespaces
Variants

std::ranges::split_view<V,Pattern>:: iterator

From cppreference.net
Ranges library
Range adaptors
class /*iterator*/ ;
(C++20以降)
( 説明専用* )

split_view::begin の戻り値型。これは forward_iterator であり、したがって V は少なくとも forward_range をモデル化することが期待されます。

目次

メンバー型

メンバー型 定義
iterator_concept std::forward_iterator_tag
iterator_category std::input_iterator_tag
value_type ranges:: subrange < ranges:: iterator_t < V >>
difference_type ranges:: range_difference_t < V >

データメンバ

メンバー 説明
ranges:: split_view < V, Pattern > * parent_ (private) split_view オブジェクトへのポインタ
( 説明専用メンバーオブジェクト* )
ranges:: iterator_t < V > cur_ (private) 基となる view 内の、現在のサブレンジの先頭を指すイテレータ
( 説明専用メンバーオブジェクト* )
ranges:: subrange < ranges:: iterator_t < V >> next_ (private) 現在のサブレンジの次のパターンの位置へのサブレンジ
( 説明専用メンバーオブジェクト* )
bool trailing_empty_ (private) 空の末尾サブレンジ(存在する場合)に到達したかどうかを示すフラグ
( 説明専用メンバーオブジェクト* )

メンバー関数

(constructor)
(C++20)
イテレータを構築する
(公開メンバ関数)
base
(C++20)
基となるイテレータを返す
(公開メンバ関数)
operator*
(C++20)
現在のサブレンジを返す
(公開メンバ関数)
operator++ operator++ (int)
(C++20)
イテレータを進める
(公開メンバ関数)

std::ranges::split_view:: iterator :: iterator

/*iterator*/ ( ) = default ;
(1) (C++20以降)
constexpr /*iterator*/ ( split_view & parent, ranges:: iterator_t < V > current,
ranges:: subrange < ranges:: iterator_t < V >> next ) ;
(2) (C++20以降)
1) 非静的データメンバをデフォルトメンバ初期化子で値初期化します。つまり:
2) 非静的データメンバを初期化します:

std::ranges::split_view:: iterator :: base

constexpr const ranges:: iterator_t < V > base ( ) const ;
(C++20以降)

return cur_ ; と等価。

std::ranges::split_view:: iterator :: operator*

constexpr value_type operator * ( ) const ;
(C++20以降)

return { cur_, next_. begin ( ) } ; と等価。

std::ranges::split_view:: iterator :: operator++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (C++20以降)
constexpr void operator ++ ( int ) ;
(2) (C++20以降)
1) 次と等価:
cur_ = next_. begin ( ) ;

if ( cur_ ! = ranges:: end ( parent_ - > base_ ) )
{
if ( cur_ = next_. end ( ) ; cur_ == ranges:: end ( parent_ - > base_ ) )
{
trailing_empty_ = true ;
next_ = { cur_, cur_ } ;
}
else
next_ = parent_ - > find_next ( cur_ ) ;
}
else
trailing_empty_ = false ;

return * this ;
2) 次と等価: auto tmp = * this ; ++* this ; return tmp ;

非メンバー関数

operator==
(C++20)
基底となるイテレータを比較する
(関数)

operator== (std::ranges::split_view:: iterator , std::ranges::split_view:: iterator )

friend constexpr bool operator == ( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(C++20以降)

x.cur_ == y.cur_ and x.trailing_empty_ == y.trailing_empty_; と等価。

!= 演算子は 合成された operator== から生成される。

この関数は通常の 非修飾名探索 または 修飾名探索 では可視化されず、 std::ranges::split_view:: iterator が引数の関連クラスである場合にのみ 実引数依存探索 によって発見される。