Modify

Opened 16 years ago

Closed 16 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

Attachments (0)

Change History (2)

comment:1 Changed 16 years ago by John Maddock

Logged In: YES 
user_id=14804

That should be fixed in the cvs now, thanks!

comment:2 Changed 16 years ago by John Maddock

Status: assignedclosed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain John Maddock.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.