名前空間
変種
操作

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

提供: cppreference.com
regex_iterator& operator++();
(C++11以上)
regex_iterator operator++(int);
(C++11以上)

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

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

イテレータが長さゼロのマッチを保持していて start == end であれば、 *this は終端イテレータに設定され、関数から戻ります。

そうでなく、イテレータが長さゼロのマッチを保持していれば、以下を呼びます。

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

この呼び出しが true を返す場合は、関数から戻ります。

そうでなければ、 start をインクリメントし、最も最近のマッチが長さゼロのマッチでなかったかのように、処理を行います。

最も最近のマッチが長さのゼロのマッチでなかった場合は、 flagsflags | regex_constants::match_prev_avail に設定し、以下を呼びます。

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

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

regex_searchtrue を返すすべての場合において、 match.prefix().firstmatch[0].second の以前の値と等しくなり、範囲 [0, match.size()) 内の match[i].matchedtrue であるインデックス i それぞれについて、 match[i].position()distance(begin, match[i].first) を返します。

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

実装がこの調節をどのように行うかは未規定です。 これは実装固有の検索関数を呼ぶかもしれないという意味であり、その場合ユーザによって定義された regex_search の特殊化は呼ばれないでしょう。

イテレータが終端イテレータである場合、動作は未定義です。

[編集]引数

(なし)

[編集]戻り値

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