Ticket #6346 (closed Bugs: fixed)
boost::regex::begin() and boost::regex::end() always return 0
|Reported by:||nowahn <nowahn@…>||Owned by:||johnmaddock|
|Milestone:||To Be Determined||Component:||regex|
boost::basic_regex<...>::begin() and boost::basic_regex<...>::end() always return 0 (zero). This is because of the status test in the relevant functions in boost::re_detail::basic_regex_implementation<...> (in the file boost/regex/v4/basic_regex.hpp: The test is
!this->m_status ? ...
it should be
this->m_status ? ...
(without the '!'). The status is good if equal to zero, !... is good if NOT equal to zero. Note that the str() function a few lines above have a less confusing test:
if(this->m_status == 0)
The fix is trivial: remove the '!' (or use the same test as in str()), but I tested it very quickly.
I join a small source code showing the bug, the output of this program (with bug not fixed and fixed), and a patch.
- Status changed from new to closed
- Resolution set to fixed