Namespaces
Variants

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

From 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 , и для каждого индекса i в диапазоне [ 0 , match. size ( ) ) , для которого match [ i ] . matched равен true , match [ i ] . position ( ) вернет distance ( begin, match [ i ] . first ) .

Это означает, что match [ i ] . position ( ) возвращает смещение от начала целевой последовательности, которое часто не совпадает со смещением от последовательности, переданной в вызове regex_search .

Не определено, как реализация выполняет эти корректировки. Это означает, что компилятор может вызывать специфичную для реализации функцию поиска, в этом случае пользовательская специализация regex_search не будет вызвана.

Поведение не определено, если итератор является конечным итератором.

Параметры

(нет)

Возвращаемое значение

1) * this
2) Предыдущее значение итератора.