#6346 closed Bugs (fixed)
boost::regex::begin() and boost::regex::end() always return 0
Reported by: | Owned by: | John Maddock | |
---|---|---|---|
Milestone: | To Be Determined | Component: | regex |
Version: | Boost 1.48.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Hi,
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.
Attachments (3)
Change History (5)
by , 11 years ago
Attachment: | watchbeginendbug.cpp added |
---|
comment:1 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Source code showing the bug.