31 Regular expressions library [re]

31.12 Regular expression iterators [re.iter]

31.12.2 Class template regex_­token_­iterator [re.tokiter]

31.12.2.1 regex_­token_­iterator constructors [re.tokiter.cnstr]

regex_token_iterator();

Effects: Создает итератор конца последовательности.

regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default); regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, const vector<int>& submatches, regex_constants::match_flag_type m = regex_constants::match_default); regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, initializer_list<int> submatches, regex_constants::match_flag_type m = regex_constants::match_default); template <size_t N> regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, const int (&submatches)[N], regex_constants::match_flag_type m = regex_constants::match_default);

Requires: Каждое из значений инициализации submatches должно быть >= -1.

Effects: Первый конструктор инициализирует член subs для хранения единственного значения submatch. Второй конструктор инициализирует член subs для хранения копии аргумента submatches. Третий и четвертый конструкторы инициализируют член subs для хранения копии последовательности целочисленных значений, на которые указывает диапазон итератора [submatches.begin(), submatches.end()) и [&submatches, &submatches + N), соответственно.

Затем каждый конструктор устанавливает N значение 0 и position значение position_­iterator(a, b, re, m). Если position это не итератор конца последовательности, конструктор устанавливает result адрес текущего совпадения. В противном случае, если любое из значений, хранящихся в subs , равно -1, конструктор устанавливает *this итератор суффикса, который указывает на диапазон [a, b), в противном случае конструктор устанавливает *this итератор конца последовательности.