Namespaces
Variants

std::regex_iterator<BidirIt,CharT,Traits>:: operator++, operator++ (int)

From ja.cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
regex_iterator & operator ++ ( ) ;
(C++11以降)
regex_iterator operator ++ ( int ) ;
(C++11以降)

イテレータを次のマッチに進めます。

まず、型 BidirIt のローカル変数が match [ 0 ] . second の値で構築されます。

イテレータが長さゼロのマッチを保持しており、 start == end の場合、 * this はシーケンス終端イテレータに設定され、関数は戻ります。

それ以外の場合、イテレータが長さゼロのマッチを保持している場合、この演算子は以下を呼び出します:

regex_search ( start, end, match, * pregex,
flags | regex_constants :: match_not_null |
regex_constants :: match_continuous ) ;

呼び出しが true を返した場合、関数は戻ります。

それ以外の場合、演算子は start をインクリメントし、最新のマッチがゼロ長マッチではなかったかのように処理を継続します。

直近のマッチがゼロ長マッチでなかった場合、この演算子は flags に flags | regex_constants :: match_prev_avail を設定し、以下を呼び出します:

regex_search ( start, end, match, * pregex, flags ) ;

呼び出しが false を返した場合、イテレータは * this を終端イテレータに設定し、関数は戻ります。

regex_search の呼び出しが true を返すすべての場合において、 match. prefix ( ) . first は match [ 0 ] . second の前の値と等しくなり、範囲 [ ​ 0 ​ , match. size ( ) ) 内の各インデックス i について match [ i ] . matched が true である場合、 match [ i ] . position ( ) は distance ( begin, match [ i ] . first ) を返します。

これは、 match [ i ] . position ( ) がターゲットシーケンスの先頭からのオフセットを返すことを意味します。これは、多くの場合、 regex_search の呼び出しで渡されたシーケンスからのオフセットとは異なります。

これらの調整を実装がどのように行うかは未規定です。これは、コンパイラが実装定義の検索関数を呼び出す可能性があることを意味し、その場合 regex_search のユーザー定義特殊化は呼び出されません。

イテレータがシーケンス終端イテレータの場合、動作は未定義です。

パラメータ

(なし)

戻り値

1) * this
2) イテレータの前の値。