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) (desde 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) (desde 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) (desde 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) (desde 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) (desde C++11)
regex_token_iterator ( const regex_token_iterator & other ) ;
(6) (desde 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) (desde 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) (desde 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) (desde 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 ) = eliminar ;
(10) (desde C++11)

Construye un nuevo regex_token_iterator :

1) Constructor por defecto. Construye el iterador de fin de secuencia.
2-5) Primero, copia la lista de las subcoincidencias solicitadas del argumento submatches o submatch a la lista miembro almacenada en el iterador y construye el miembro std::regex_iterator pasando a , b , re , y m a su constructor de cuatro argumentos (ese constructor realiza la llamada inicial a std::regex_search ) y establece el contador interno de submatches a cero.
  • Si, después de la construcción, el miembro regex_iterator no es un iterador de fin de secuencia, establece el puntero miembro a la dirección de la std::sub_match actual.
  • De lo contrario (si el miembro regex_iterator es un iterador de fin de secuencia), pero el valor - 1 es uno de los valores en submatches / submatch , convierte * this en un iterador de sufijo que apunta al rango [ a , b ) (la cadena completa es el sufijo no coincidente).
  • De lo contrario (si - 1 no está en la lista de submatches ), convierte * this en el iterador de fin de secuencia.

El comportamiento es indefinido si cualquier valor en submatches es menor que - 1 .

6) Constructor de copia: realiza una copia miembro a miembro (incluyendo hacer una copia del miembro regex_iterator y del miembro puntero al actual sub_match ).
7-10) Las sobrecargas (2-5) tienen prohibido ser llamadas con un regex temporal ya que de lo contrario el iterador devuelto sería inmediatamente invalidado.

Parámetros

a - LegacyBidirectionalIterator al inicio de la secuencia de caracteres objetivo
b - LegacyBidirectionalIterator al final de la secuencia de caracteres objetivo
re - expresión regular utilizada para buscar en la secuencia de caracteres objetivo
submatch - el índice de la subcoincidencia que debe ser devuelta. "0" representa la coincidencia completa, y "-1" representa las partes que no coinciden (por ejemplo, el contenido entre coincidencias)
submatches - la secuencia de índices de subcoincidencia que debe iterarse dentro de cada coincidencia, puede incluir el valor especial - 1 para los fragmentos no coincidentes
m - banderas que controlan el comportamiento de re

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2332 C++11 un regex_token_iterator construido desde un
temporal basic_regex se volvía inválido inmediatamente
dicha construcción se deshabilita mediante sobrecargas eliminadas