Espacios de nombres
Variantes
Acciones

std::regex_token_iterator::regex_token_iterator

De cppreference.com
 
 
Biblioteca de expresiones regulares
Clases
(C++11)
Algoritmos
Iteradores
Excepciones
Rasgos
Constantes
(C++11)
Gramática de las expresiones regulares
 
 
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,
                      conststd::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,
                      constint(&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,
                      conststd::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,
                      constint(&submatches)[N],
                      std::regex_constants::match_flag_type m =

                          std::regex_constants::match_default)= delete;
(10) (desde C++11)

Construye un nuevo regex_token_iterator:

1) Constructor por defecto. Construye un iterador de fin de secuencia.
2-5) Primero, copia la lista de la subcoincidencia solicitada del argumento submatches o submatch en la lista de miembros 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 subcoincidencias en cero.
  • Si después de la construcción el miembro regex_iterator no es un iterador de fin de secuencia, establece el puntero a miembro en la dirección del 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) (toda la cadena es el sufijo no coincidente).
  • De lo contrario (si -1 no está en la lista de subcoincidencias), convierte *this en el iterador de fin de secuencia.

El comportamiento no está definido si cualquier valor en submatches es menor que -1.

6) Constructor de copia: realiza una copia a nivel de miembros (incluida la copia del miembro regex_iterator y el puntero a miembro al sub_match actual).
7-10) Se prohíbe llamar a las sobrecargas (2-5) con una expresión regular temporal, ya que de lo contrario el iterador devuelto se invalidaría inmediatamente.

[editar]Parámetros

a - BidirectionalIterator al comienzo de la secuencia de caracteres de destino.
b - BidirectionalIterator al fin de la secuencia de caracteres de destino.
re - Expresión regular utilizada para buscar la secuencia de caracteres de destino.
submatch - El índice de la subcoincidencia que deberá devolverse. "0" representa la coincidencia completa, y "-1" representa las partes que no coincidieron (p. ej., lo que está entre las coincidencias).
submatches - La secuencia de índices de subcoincidencia que deben repetirse dentro de cada coincidencia, puede incluir el valor especial -1 para los fragmentos no coincidentes.
m - Indicadores que gobiernan el comportamiento de re.

[editar]Ejemplo

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2332 C++11 Un regex_iterator construido a partir de un basic_regex
temporal se volvía inválido inmediatamente.
Tal construcción no se admite mediante una sobrecarga eliminada (=delete).
close