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 的先前值,而且对于范围 [0, match.size()) 中满足 match[i].matched 为 true 的的每个 i , match[i].position() 将返回 distance(begin, match[i].first) 。
这表明 match[i].position() 给出自目标序列起始的偏移,它通常与从传递给 regex_search 调用中的序列偏移不同。
实现如何进行这些调整是未指定的。这表明编译器可以调用实现限定的搜索函数,该情况下将不调用用户定义的 regex_search 特化。
若迭代器是序列尾迭代器则行为未定义。
参数
(无)