Opened 21 years ago
Closed 21 years ago
#44 closed Bugs (Fixed)
regex_match bidirectional-iterator bug
| Reported by: | lfarkas | Owned by: | John Maddock |
|---|---|---|---|
| Milestone: | Component: | regex | |
| Version: | None | Severity: | |
| Keywords: | Cc: |
Description
in your boost regex library doc, you wrote:
-------------------------
The algorithm regex _match determines whether a given
regular expression
matches a given sequence denoted by a pair of
bidirectional-iterators, the
algorithm is defined as follows, note that the result
is true only if the
expression matches the whole of the input sequence, the
main use of this
function is data input validation:
template <class iterator, class Allocator, class charT,
class traits, class
Allocator2>
bool regex_match(iterator first,
iterator last,
match_results<iterator, Allocator>& m,
const reg_expression<charT, traits,
Allocator2>& e,
unsigned flags = match_default);
-------------------------
at the same time you use in regex_match.hpp:
-------------------------
restart += len;
-------------------------
which means iterator should have to be random-access
rather than
bidirectional-iterator.
a very simple resolution would be :
std::advance(restart, len);
and in case of random-access this compiles to += on
a good c++ library implementation
Note:
See TracTickets
for help on using tickets.
