Namespaces
Variants

std::regex_token_iterator<BidirIt,CharT,Traits>:: regex_token_iterator

From cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
regex_token_iterator ( ) ;
(1) (начиная с C++11)
regex_token_iterator ( BidirIt a, BidirIt b,

const regex_type & re,
int submatch = 0 ,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) ;
(2) (начиная с C++11)
regex_token_iterator ( BidirIt a, BidirIt b,

const regex_type & re,
const std:: vector < int > & submatches,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) ;
(3) (начиная с C++11)
regex_token_iterator ( BidirIt a, BidirIt b,

const regex_type & re,
std:: initializer_list < int > submatches,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) ;
(4) (начиная с C++11)
template < std:: size_t N >

regex_token_iterator ( BidirIt a, BidirIt b,
const regex_type & re,
const int ( & submatches ) [ N ] ,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) ;
(5) (начиная с C++11)
regex_token_iterator ( const regex_token_iterator & other ) ;
(6) (начиная с C++11)
regex_token_iterator ( BidirIt a, BidirIt b,

const regex_type && re,
int submatch = 0 ,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) = delete ;
(7) (начиная с C++11)
regex_token_iterator ( BidirIt a, BidirIt b,

const regex_type && re,
const std:: vector < int > & submatches,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) = delete ;
(8) (начиная с C++11)
regex_token_iterator ( BidirIt a, BidirIt b,

const regex_type && re,
std:: initializer_list < int > submatches,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) = delete ;
(9) (начиная с C++11)
template < std:: size_t N >

regex_token_iterator ( BidirIt a, BidirIt b,
const regex_type && re,
const int ( & submatches ) [ N ] ,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) = delete ;
(10) (начиная с C++11)

Создает новый regex_token_iterator :

1) Конструктор по умолчанию. Создает итератор конца последовательности.
2-5) Сначала копирует список запрошенных подсовпадений из аргумента submatches или submatch в список-член, хранящийся в итераторе, и конструирует член std::regex_iterator путём передачи a , b , re и m его четырёхаргументному конструктору (этот конструктор выполняет первоначальный вызов std::regex_search ) и устанавливает внутренний счётчик submatches в ноль.
  • Если после конструирования член regex_iterator не является итератором конца последовательности, устанавливает член-указатель на адрес текущего std::sub_match .
  • Иначе (если член regex_iterator является итератором конца последовательности), но значение - 1 присутствует среди значений в submatches / submatch , преобразует * this в суффиксный итератор , указывающий на диапазон [ a , b ) (вся строка является несовпавшим суффиксом).
  • Иначе (если - 1 отсутствует в списке submatches ), преобразует * this в итератор конца последовательности.

Поведение не определено, если любое значение в submatches меньше - 1 .

6) Конструктор копирования: выполняет почленное копирование (включая создание копии члена regex_iterator и члена-указателя на текущий sub_match ).
7-10) Перегрузки (2-5) запрещено вызывать с временным регулярным выражением, поскольку в противном случае возвращаемый итератор будет немедленно инвалидирован.

Параметры

a - LegacyBidirectionalIterator к началу целевой последовательности символов
b - LegacyBidirectionalIterator к концу целевой последовательности символов
re - регулярное выражение, используемое для поиска в целевой последовательности символов
submatch - индекс подсовпадения, которое должно быть возвращено. "0" представляет полное совпадение, а "-1" представляет части, которые не совпадают (например, текст между совпадениями)
submatches - последовательность индексов подсовпадений, которые должны быть перебраны в пределах каждого совпадения, может включать специальное значение - 1 для несопоставленных фрагментов
m - флаги, управляющие поведением re

Пример

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 2332 C++11 regex_token_iterator созданный из временного
basic_regex становился недействительным немедленно
такая конструкция запрещена через удалённые перегрузки