include/boost/regex/v5/regex_token_iterator.hpp
98.0% Lines (96/98)
98.9% List of functions (88/89)
Functions (89)
Function
Calls
Lines
Blocks
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::regex_token_iterator_implementation(boost::basic_regex<char, boost::c_regex_traits<char> > const*, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, int, boost::regex_constants::_match_flags)
:49
46680x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::regex_token_iterator_implementation(boost::basic_regex<char, boost::cpp_regex_traits<char> > const*, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, int, boost::regex_constants::_match_flags)
:49
46680x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_token_iterator_implementation(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const*, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, int, boost::regex_constants::_match_flags)
:49
2x
100.0%
58.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::regex_token_iterator_implementation(boost::basic_regex<wchar_t, boost::c_regex_traits<wchar_t> > const*, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, int, boost::regex_constants::_match_flags)
:49
46896x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_token_iterator_implementation(boost::basic_regex<wchar_t, boost::cpp_regex_traits<wchar_t> > const*, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, int, boost::regex_constants::_match_flags)
:49
46896x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::regex_token_iterator_implementation(boost::basic_regex<char, boost::c_regex_traits<char> > const*, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:51
23340x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::regex_token_iterator_implementation(boost::basic_regex<char, boost::cpp_regex_traits<char> > const*, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:51
23340x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::regex_token_iterator_implementation(boost::basic_regex<wchar_t, boost::c_regex_traits<wchar_t> > const*, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:51
23448x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_token_iterator_implementation(boost::basic_regex<wchar_t, boost::cpp_regex_traits<wchar_t> > const*, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:51
23448x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_token_iterator_implementation<2ul>(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const*, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, int const (&) [2ul], boost::regex_constants::_match_flags)
:54
1x
100.0%
64.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::regex_token_iterator_implementation(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> > const&)
:62
65028x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::regex_token_iterator_implementation(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> > const&)
:62
65028x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_token_iterator_implementation(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&)
:62
300x
100.0%
67.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::regex_token_iterator_implementation(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> > const&)
:62
65316x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_token_iterator_implementation(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> > const&)
:62
65316x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::init(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)
:63
70020x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::init(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)
:63
70020x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::init(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)
:63
3x
50.0%
45.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::init(__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >)
:63
70344x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::init(__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >)
:63
70344x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::compare(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> > const&)
:83
165456x
100.0%
95.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::compare(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> > const&)
:83
165456x
100.0%
95.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::compare(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&)
:83
0
0.0%
0.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::compare(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> > const&)
:83
166488x
100.0%
95.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::compare(boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> > const&)
:83
166488x
100.0%
95.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::get()
:93
165456x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::get()
:93
165456x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::get()
:93
300x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::get()
:93
166488x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::get()
:93
166488x
100.0%
100.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::next()
:95
208272x
100.0%
97.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::next()
:95
208272x
100.0%
97.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::next()
:95
300x
100.0%
80.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::next()
:95
209472x
100.0%
97.0%
boost::regex_token_iterator_implementation<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::next()
:95
209472x
100.0%
97.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::regex_token_iterator()
:145
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::regex_token_iterator()
:145
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_token_iterator()
:145
3x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::regex_token_iterator()
:145
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_token_iterator()
:145
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::regex_token_iterator(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::c_regex_traits<char> > const&, int, boost::regex_constants::_match_flags)
:146
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::regex_token_iterator(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::cpp_regex_traits<char> > const&, int, boost::regex_constants::_match_flags)
:146
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_token_iterator(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, int, boost::regex_constants::_match_flags)
:146
2x
80.0%
62.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::regex_token_iterator(__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::basic_regex<wchar_t, boost::c_regex_traits<wchar_t> > const&, int, boost::regex_constants::_match_flags)
:146
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_token_iterator(__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::basic_regex<wchar_t, boost::cpp_regex_traits<wchar_t> > const&, int, boost::regex_constants::_match_flags)
:146
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::regex_token_iterator(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::c_regex_traits<char> > const&, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:153
23340x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::regex_token_iterator(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::cpp_regex_traits<char> > const&, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:153
23340x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::regex_token_iterator(__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::basic_regex<wchar_t, boost::c_regex_traits<wchar_t> > const&, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:153
23448x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_token_iterator(__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::basic_regex<wchar_t, boost::cpp_regex_traits<wchar_t> > const&, std::vector<int, std::allocator<int> > const&, boost::regex_constants::_match_flags)
:153
23448x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_token_iterator<2ul>(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, int const (&) [2ul], boost::regex_constants::_match_flags)
:161
1x
80.0%
62.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::regex_token_iterator(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> > const&)
:168
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::regex_token_iterator(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> > const&)
:168
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_token_iterator(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&)
:168
300x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::regex_token_iterator(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> > const&)
:168
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_token_iterator(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> > const&)
:168
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::operator=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> > const&)
:170
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::operator=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> > const&)
:170
46680x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::operator=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> > const&)
:170
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::operator=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> > const&)
:170
46896x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::operator==(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> > const&) const
:175
379524x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::operator==(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> > const&) const
:175
379524x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::operator==(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&) const
:175
303x
75.0%
67.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::operator==(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> > const&) const
:175
381828x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::operator==(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> > const&) const
:175
381828x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::operator!=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> > const&) const
:181
266136x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::operator!=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> > const&) const
:181
266136x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::operator!=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&) const
:181
303x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::operator!=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> > const&) const
:181
267708x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::operator!=(boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> > const&) const
:181
267708x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::operator*() const
:183
42816x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::operator*() const
:183
42816x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::operator*() const
:183
300x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::operator*() const
:183
42984x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::operator*() const
:183
42984x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::operator->() const
:185
122640x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::operator->() const
:185
122640x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::operator->() const
:185
123504x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::operator->() const
:185
123504x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::operator++()
:187
208272x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::operator++()
:187
208272x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::operator++()
:187
300x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::operator++()
:187
209472x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::operator++()
:187
209472x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::operator++(int)
:196
300x
80.0%
83.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::c_regex_traits<char> >::cow()
:206
208272x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::cpp_regex_traits<char> >::cow()
:206
208272x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::cow()
:206
300x
100.0%
80.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::c_regex_traits<wchar_t> >::cow()
:206
209472x
100.0%
100.0%
boost::regex_token_iterator<__gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t, boost::cpp_regex_traits<wchar_t> >::cow()
:206
209472x
100.0%
100.0%
| Line | TLA | Hits | Source Code |
|---|---|---|---|
| 1 | /* | ||
| 2 | * | ||
| 3 | * Copyright (c) 2003 | ||
| 4 | * John Maddock | ||
| 5 | * | ||
| 6 | * Use, modification and distribution are subject to the | ||
| 7 | * Boost Software License, Version 1.0. (See accompanying file | ||
| 8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
| 9 | * | ||
| 10 | */ | ||
| 11 | |||
| 12 | /* | ||
| 13 | * LOCATION: see http://www.boost.org for most recent version. | ||
| 14 | * FILE regex_token_iterator.hpp | ||
| 15 | * VERSION see <boost/version.hpp> | ||
| 16 | * DESCRIPTION: Provides regex_token_iterator implementation. | ||
| 17 | */ | ||
| 18 | |||
| 19 | #ifndef BOOST_REGEX_V5_REGEX_TOKEN_ITERATOR_HPP | ||
| 20 | #define BOOST_REGEX_V5_REGEX_TOKEN_ITERATOR_HPP | ||
| 21 | |||
| 22 | #include <boost/regex/v5/basic_regex.hpp> | ||
| 23 | #include <boost/regex/v5/match_results.hpp> | ||
| 24 | #include <boost/regex/v5/sub_match.hpp> | ||
| 25 | #ifndef BOOST_REGEX_AS_MODULE | ||
| 26 | #include <memory> | ||
| 27 | #endif | ||
| 28 | |||
| 29 | namespace boost{ | ||
| 30 | |||
| 31 | template <class BidirectionalIterator, | ||
| 32 | class charT, | ||
| 33 | class traits> | ||
| 34 | class regex_token_iterator_implementation | ||
| 35 | { | ||
| 36 | typedef basic_regex<charT, traits> regex_type; | ||
| 37 | typedef sub_match<BidirectionalIterator> value_type; | ||
| 38 | |||
| 39 | match_results<BidirectionalIterator> what; // current match | ||
| 40 | BidirectionalIterator base; // start of search area | ||
| 41 | BidirectionalIterator end; // end of search area | ||
| 42 | const regex_type re; // the expression | ||
| 43 | match_flag_type flags; // match flags | ||
| 44 | value_type result; // the current string result | ||
| 45 | int N; // the current sub-expression being enumerated | ||
| 46 | std::vector<int> subs; // the sub-expressions to enumerate | ||
| 47 | |||
| 48 | public: | ||
| 49 | 187154x | regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, int sub, match_flag_type f) | |
| 50 | 561462x | : end(last), re(*p), flags(f), N(0){ subs.push_back(sub); } | |
| 51 | 93576x | regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const std::vector<int>& v, match_flag_type f) | |
| 52 | 280728x | : end(last), re(*p), flags(f), N(0), subs(v){} | |
| 53 | template <std::size_t CN> | ||
| 54 | 1x | regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const int (&submatches)[CN], match_flag_type f) | |
| 55 | 3x | : end(last), re(*p), flags(f), N(0) | |
| 56 | { | ||
| 57 | 3x | for(std::size_t i = 0; i < CN; ++i) | |
| 58 | { | ||
| 59 | 2x | subs.push_back(submatches[i]); | |
| 60 | } | ||
| 61 | 1x | } | |
| 62 | 260988x | regex_token_iterator_implementation(const regex_token_iterator_implementation& other) = default; | |
| 63 | 280731x | bool init(BidirectionalIterator first) | |
| 64 | { | ||
| 65 | 280731x | N = 0; | |
| 66 | 280731x | base = first; | |
| 67 | 280731x | if(regex_search(first, end, what, re, flags, base) == true) | |
| 68 | { | ||
| 69 | 224643x | N = 0; | |
| 70 | 224643x | result = ((subs[N] == -1) ? what.prefix() : what[(int)subs[N]]); | |
| 71 | 224643x | return true; | |
| 72 | } | ||
| 73 | 56088x | else if((subs[N] == -1) && (first != end)) | |
| 74 | { | ||
| 75 | 36048x | result.first = first; | |
| 76 | 36048x | result.second = end; | |
| 77 | 36048x | result.matched = (first != end); | |
| 78 | 36048x | N = -1; | |
| 79 | 36048x | return true; | |
| 80 | } | ||
| 81 | 20040x | return false; | |
| 82 | } | ||
| 83 | 663888x | bool compare(const regex_token_iterator_implementation& that) | |
| 84 | { | ||
| 85 | 663888x | if(this == &that) return true; | |
| 86 | 142512x | return (&re.get_data() == &that.re.get_data()) | |
| 87 | 142512x | && (end == that.end) | |
| 88 | 142512x | && (flags == that.flags) | |
| 89 | 142512x | && (N == that.N) | |
| 90 | 142512x | && (what[0].first == that.what[0].first) | |
| 91 | 285024x | && (what[0].second == that.what[0].second); | |
| 92 | } | ||
| 93 | 664188x | const value_type& get() | |
| 94 | 664188x | { return result; } | |
| 95 | 835788x | bool next() | |
| 96 | { | ||
| 97 | 835788x | if(N == -1) | |
| 98 | 149089x | return false; | |
| 99 | 686699x | if(N+1 < (int)subs.size()) | |
| 100 | { | ||
| 101 | 171698x | ++N; | |
| 102 | 171698x | result =((subs[N] == -1) ? what.prefix() : what[subs[N]]); | |
| 103 | 171698x | return true; | |
| 104 | } | ||
| 105 | //if(what.prefix().first != what[0].second) | ||
| 106 | // flags |= /*match_prev_avail |*/ regex_constants::match_not_bob; | ||
| 107 | 515001x | BidirectionalIterator last_end(what[0].second); | |
| 108 | 515001x | if(regex_search(last_end, end, what, re, ((what[0].first == what[0].second) ? flags | regex_constants::match_not_initial_null : flags), base)) | |
| 109 | { | ||
| 110 | 65718x | N =0; | |
| 111 | 65718x | result =((subs[N] == -1) ? what.prefix() : what[subs[N]]); | |
| 112 | 65718x | return true; | |
| 113 | } | ||
| 114 | 449283x | else if((last_end != end) && (subs[0] == -1)) | |
| 115 | { | ||
| 116 | 76993x | N =-1; | |
| 117 | 76993x | result.first = last_end; | |
| 118 | 76993x | result.second = end; | |
| 119 | 76993x | result.matched = (last_end != end); | |
| 120 | 76993x | return true; | |
| 121 | } | ||
| 122 | 372290x | return false; | |
| 123 | } | ||
| 124 | private: | ||
| 125 | regex_token_iterator_implementation& operator=(const regex_token_iterator_implementation&); | ||
| 126 | }; | ||
| 127 | |||
| 128 | BOOST_REGEX_MODULE_EXPORT template <class BidirectionalIterator, | ||
| 129 | class charT = typename std::iterator_traits<BidirectionalIterator>::value_type, | ||
| 130 | class traits = regex_traits<charT> > | ||
| 131 | class regex_token_iterator | ||
| 132 | { | ||
| 133 | private: | ||
| 134 | typedef regex_token_iterator_implementation<BidirectionalIterator, charT, traits> impl; | ||
| 135 | typedef std::shared_ptr<impl> pimpl; | ||
| 136 | public: | ||
| 137 | typedef basic_regex<charT, traits> regex_type; | ||
| 138 | typedef sub_match<BidirectionalIterator> value_type; | ||
| 139 | typedef typename std::iterator_traits<BidirectionalIterator>::difference_type | ||
| 140 | difference_type; | ||
| 141 | typedef const value_type* pointer; | ||
| 142 | typedef const value_type& reference; | ||
| 143 | typedef std::forward_iterator_tag iterator_category; | ||
| 144 | |||
| 145 | 187155x | regex_token_iterator(){} | |
| 146 | 187154x | regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, | |
| 147 | int submatch = 0, match_flag_type m = match_default) | ||
| 148 | 187154x | : pdata(new impl(&re, b, submatch, m)) | |
| 149 | { | ||
| 150 | 187154x | if(!pdata->init(a)) | |
| 151 | 19368x | pdata.reset(); | |
| 152 | 187154x | } | |
| 153 | 93576x | regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, | |
| 154 | const std::vector<int>& submatches, match_flag_type m = match_default) | ||
| 155 | 93576x | : pdata(new impl(&re, b, submatches, m)) | |
| 156 | { | ||
| 157 | 93576x | if(!pdata->init(a)) | |
| 158 | 672x | pdata.reset(); | |
| 159 | 93576x | } | |
| 160 | template <std::size_t N> | ||
| 161 | 1x | regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, | |
| 162 | const int (&submatches)[N], match_flag_type m = match_default) | ||
| 163 | 1x | : pdata(new impl(&re, b, submatches, m)) | |
| 164 | { | ||
| 165 | 1x | if(!pdata->init(a)) | |
| 166 | ✗ | pdata.reset(); | |
| 167 | 1x | } | |
| 168 | 187452x | regex_token_iterator(const regex_token_iterator& that) | |
| 169 | 187452x | : pdata(that.pdata) {} | |
| 170 | 187152x | regex_token_iterator& operator=(const regex_token_iterator& that) | |
| 171 | { | ||
| 172 | 187152x | pdata = that.pdata; | |
| 173 | 187152x | return *this; | |
| 174 | } | ||
| 175 | 1523007x | bool operator==(const regex_token_iterator& that)const | |
| 176 | { | ||
| 177 | 1523007x | if((pdata.get() == 0) || (that.pdata.get() == 0)) | |
| 178 | 859119x | return pdata.get() == that.pdata.get(); | |
| 179 | 663888x | return pdata->compare(*(that.pdata.get())); | |
| 180 | } | ||
| 181 | 1067991x | bool operator!=(const regex_token_iterator& that)const | |
| 182 | 1067991x | { return !(*this == that); } | |
| 183 | 171900x | const value_type& operator*()const | |
| 184 | 171900x | { return pdata->get(); } | |
| 185 | 492288x | const value_type* operator->()const | |
| 186 | 492288x | { return &(pdata->get()); } | |
| 187 | 835788x | regex_token_iterator& operator++() | |
| 188 | { | ||
| 189 | 835788x | cow(); | |
| 190 | 835788x | if(0 == pdata->next()) | |
| 191 | { | ||
| 192 | 521379x | pdata.reset(); | |
| 193 | } | ||
| 194 | 835788x | return *this; | |
| 195 | } | ||
| 196 | 300x | regex_token_iterator operator++(int) | |
| 197 | { | ||
| 198 | 300x | regex_token_iterator result(*this); | |
| 199 | 300x | ++(*this); | |
| 200 | 300x | return result; | |
| 201 | ✗ | } | |
| 202 | private: | ||
| 203 | |||
| 204 | pimpl pdata; | ||
| 205 | |||
| 206 | 835788x | void cow() | |
| 207 | { | ||
| 208 | // copy-on-write | ||
| 209 | 835788x | if(pdata.get() && (pdata.use_count() > 1)) | |
| 210 | { | ||
| 211 | 260988x | pdata.reset(new impl(*(pdata.get()))); | |
| 212 | } | ||
| 213 | 835788x | } | |
| 214 | }; | ||
| 215 | |||
| 216 | BOOST_REGEX_MODULE_EXPORT typedef regex_token_iterator<const char*> cregex_token_iterator; | ||
| 217 | BOOST_REGEX_MODULE_EXPORT typedef regex_token_iterator<std::string::const_iterator> sregex_token_iterator; | ||
| 218 | #ifndef BOOST_NO_WREGEX | ||
| 219 | BOOST_REGEX_MODULE_EXPORT typedef regex_token_iterator<const wchar_t*> wcregex_token_iterator; | ||
| 220 | BOOST_REGEX_MODULE_EXPORT typedef regex_token_iterator<std::wstring::const_iterator> wsregex_token_iterator; | ||
| 221 | #endif | ||
| 222 | |||
| 223 | BOOST_REGEX_MODULE_EXPORT template <class charT, class traits> | ||
| 224 | inline regex_token_iterator<const charT*, charT, traits> make_regex_token_iterator(const charT* p, const basic_regex<charT, traits>& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default) | ||
| 225 | { | ||
| 226 | return regex_token_iterator<const charT*, charT, traits>(p, p+traits::length(p), e, submatch, m); | ||
| 227 | } | ||
| 228 | BOOST_REGEX_MODULE_EXPORT template <class charT, class traits, class ST, class SA> | ||
| 229 | inline regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits> make_regex_token_iterator(const std::basic_string<charT, ST, SA>& p, const basic_regex<charT, traits>& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default) | ||
| 230 | { | ||
| 231 | return regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits>(p.begin(), p.end(), e, submatch, m); | ||
| 232 | } | ||
| 233 | BOOST_REGEX_MODULE_EXPORT template <class charT, class traits, std::size_t N> | ||
| 234 | inline regex_token_iterator<const charT*, charT, traits> make_regex_token_iterator(const charT* p, const basic_regex<charT, traits>& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default) | ||
| 235 | { | ||
| 236 | return regex_token_iterator<const charT*, charT, traits>(p, p+traits::length(p), e, submatch, m); | ||
| 237 | } | ||
| 238 | BOOST_REGEX_MODULE_EXPORT template <class charT, class traits, class ST, class SA, std::size_t N> | ||
| 239 | inline regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits> make_regex_token_iterator(const std::basic_string<charT, ST, SA>& p, const basic_regex<charT, traits>& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default) | ||
| 240 | { | ||
| 241 | return regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits>(p.begin(), p.end(), e, submatch, m); | ||
| 242 | } | ||
| 243 | BOOST_REGEX_MODULE_EXPORT template <class charT, class traits> | ||
| 244 | inline regex_token_iterator<const charT*, charT, traits> make_regex_token_iterator(const charT* p, const basic_regex<charT, traits>& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default) | ||
| 245 | { | ||
| 246 | return regex_token_iterator<const charT*, charT, traits>(p, p+traits::length(p), e, submatch, m); | ||
| 247 | } | ||
| 248 | BOOST_REGEX_MODULE_EXPORT template <class charT, class traits, class ST, class SA> | ||
| 249 | inline regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits> make_regex_token_iterator(const std::basic_string<charT, ST, SA>& p, const basic_regex<charT, traits>& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default) | ||
| 250 | { | ||
| 251 | return regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits>(p.begin(), p.end(), e, submatch, m); | ||
| 252 | } | ||
| 253 | |||
| 254 | } // namespace boost | ||
| 255 | |||
| 256 | #endif // BOOST_REGEX_V5_REGEX_TOKEN_ITERATOR_HPP | ||
| 257 | |||
| 258 | |||
| 259 | |||
| 260 | |||
| 261 |