#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.