std::regex_token_iterator<BidirIt,CharT,Traits>::regex_token_iterator - cppreference.com (original) (raw)

regex_token_iterator(); (1) (since 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) (since 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) (since 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) (since 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) (since C++11)
regex_token_iterator( const regex_token_iterator& other ); (6) (since 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) (since 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) (since 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) (since 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) (since C++11)

Constructs a new regex_token_iterator:

  1. Default constructor. Constructs the end-of-sequence iterator.

2-5) First, copies the list of the requested submatch out of the submatches or submatch argument into the member list stored in the iterator and constructs the member std::regex_iterator by passing a, b, re, and m to its four-argument constructor (that constructor performs the initial call to std::regex_search) and sets the internal counter of submatches to zero.

The behavior is undefined if any value in submatches is less than -1.

  1. Copy constructor: performs member-wise copy (including making a copy of the member regex_iterator and the member pointer to current sub_match).

7-10) The overloads (2-5) are prohibited from being called with a temporary regex since otherwise the returned iterator would be immediately invalidated.

[edit] Parameters

a - LegacyBidirectionalIterator to the beginning of the target character sequence
b - LegacyBidirectionalIterator to the end of the target character sequence
re - regular expression used to search the target character sequence
submatch - the index of the submatch that should be returned. "0" represents the entire match, and "-1" represents the parts that are not matched (e.g, the stuff between matches)
submatches - the sequence of submatch indices that should be iterated over within each match, may include the special value -1 for the non-matched fragments
m - flags that govern the behavior of re

[edit] Example

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 2332 C++11 a regex_token_iterator constructed from atemporary basic_regex became invalid immediately such construction is disallowed via deleted overloads