std::regex_iterator<BidirIt,CharT,Traits>::operator++, operator++(int)
| 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` をインクリメントし、直近のマッチがゼロ長マッチではなかったかのように処理を続行します。
直近のマッチがゼロ長マッチでなかった場合、演算子は `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` の以前の値と等しくなり、match[i].matched が true である範囲 [0, match.size()) の各インデックス i について、match[i].position() は distance(begin, match[i].first) を返します。
これは、match[i].position() がターゲットシーケンスの先頭からのオフセットを与えることを意味しますが、これは多くの場合、`regex_search` の呼び出しに渡されたシーケンスからのオフセットと同じではありません。
実装がこれらの調整をどのように行うかは未規定です。これは、コンパイラが実装固有の検索関数を呼び出す可能性があることを意味し、その場合、ユーザー定義の `regex_search` の特殊化は呼び出されません。
イテレータがシーケンス終了イテレータである場合、動作は未定義です。
[編集] パラメータ
(なし)