std::regex_token_iterator::regex_token_iterator
De cppreference.com
<tbody>
</tbody>
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 ) = 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_iteratorno 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_iteratores un iterador de fin de secuencia), pero el valor-1es uno de los valores ensubmatches/submatch, convierte*thisen un iterador de sufijo que apunta al rango[a,b)(toda la cadena es el sufijo no coincidente). - De lo contrario (si
-1no está en la lista de subcoincidencias), convierte*thisen 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.
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.
|
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
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_regextemporal se volvía inválido inmediatamente. |
Tal construcción no se admite mediante una sobrecarga eliminada (=delete).
|