2003-05-17 11:55:51 +00:00
|
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>Boost.Regex: sub_match</title>
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="../../../boost.css">
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<P>
|
|
|
|
|
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
|
|
|
|
|
<TR>
|
|
|
|
|
<td valign="top" width="300">
|
|
|
|
|
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
|
|
|
|
|
</td>
|
|
|
|
|
<TD width="353">
|
|
|
|
|
<H1 align="center">Boost.Regex</H1>
|
|
|
|
|
<H2 align="center">sub_match</H2>
|
|
|
|
|
</TD>
|
|
|
|
|
<td width="50">
|
|
|
|
|
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
|
|
|
|
|
</td>
|
|
|
|
|
</TR>
|
|
|
|
|
</TABLE>
|
|
|
|
|
</P>
|
|
|
|
|
<HR>
|
|
|
|
|
<H3>Synopsis</H3>
|
2003-05-24 11:13:26 +00:00
|
|
|
|
<P>#include <<A href="../../../boost/regex.hpp">boost/regex.hpp</A>>
|
2003-05-17 11:55:51 +00:00
|
|
|
|
</P>
|
|
|
|
|
<P>Regular expressions are different from many simple pattern-matching algorithms
|
|
|
|
|
in that as well as finding an overall match they can also produce
|
|
|
|
|
sub-expression matches: each sub-expression being delimited in the pattern by a
|
|
|
|
|
pair of parenthesis (...). There has to be some method for reporting
|
|
|
|
|
sub-expression matches back to the user: this is achieved this by defining a
|
2003-05-24 11:13:26 +00:00
|
|
|
|
class <I><A href="match_results.html">match_results</A></I> that acts as an
|
2003-05-17 11:55:51 +00:00
|
|
|
|
indexed collection of sub-expression matches, each sub-expression match being
|
|
|
|
|
contained in an object of type <I>sub_match</I>
|
|
|
|
|
.
|
|
|
|
|
<P>Objects of type <EM>sub_match</EM> may only obtained by subscripting an object
|
|
|
|
|
of type <EM><A href="match_results.html">match_results</A></EM>
|
|
|
|
|
.
|
|
|
|
|
<P>When the marked sub-expression denoted by an object of type sub_match<>
|
|
|
|
|
participated in a regular expression match then member <CODE>matched</CODE> evaluates
|
|
|
|
|
to true, and members <CODE>first</CODE> and <CODE>second</CODE> denote the
|
|
|
|
|
range of characters <CODE>[first,second)</CODE> which formed that match.
|
|
|
|
|
Otherwise <CODE>matched</CODE> is false, and members <CODE>first</CODE> and <CODE>second</CODE>
|
|
|
|
|
contained undefined values.</P>
|
|
|
|
|
<P>If an object of type <CODE>sub_match<></CODE> represents sub-expression 0
|
|
|
|
|
- that is to say the whole match - then member <CODE>matched</CODE> is always
|
|
|
|
|
true, unless a partial match was obtained as a result of the flag <CODE>match_partial</CODE>
|
|
|
|
|
being passed to a regular expression algorithm, in which case member <CODE>matched</CODE>
|
|
|
|
|
is false, and members <CODE>first</CODE> and <CODE>second</CODE> represent the
|
|
|
|
|
character range that formed the partial match.</P>
|
|
|
|
|
<PRE>
|
|
|
|
|
namespace boost{
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
class sub_match : public std::pair<BidirectionalIterator, BidirectionalIterator>
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
typedef typename iterator_traits<BidirectionalIterator>::value_type value_type;
|
|
|
|
|
typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type;
|
|
|
|
|
typedef BidirectionalIterator iterator;
|
|
|
|
|
|
|
|
|
|
bool matched;
|
|
|
|
|
|
|
|
|
|
difference_type length()const;
|
|
|
|
|
operator basic_string<value_type>()const;
|
|
|
|
|
basic_string<value_type> str()const;
|
|
|
|
|
|
|
|
|
|
int compare(const sub_match& s)const;
|
|
|
|
|
int compare(const basic_string<value_type>& s)const;
|
|
|
|
|
int compare(const value_type* s)const;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator == (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator != (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator < (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator > (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator >= (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator <= (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator == (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator != (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator < (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator > (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator >= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator, class traits, class Allocator>
|
|
|
|
|
bool operator <= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>& rhs);
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);
|
|
|
|
|
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
|
|
|
|
|
template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
|
|
|
|
|
|
|
|
|
|
template <class charT, class traits, class BidirectionalIterator>
|
|
|
|
|
basic_ostream<charT, traits>&
|
|
|
|
|
operator << (basic_ostream<charT, traits>& os,
|
|
|
|
|
const sub_match<BidirectionalIterator>& m);
|
|
|
|
|
|
|
|
|
|
} // namespace boost</PRE>
|
|
|
|
|
<H3>Description</H3>
|
|
|
|
|
<H4>
|
|
|
|
|
sub_match members</H4>
|
|
|
|
|
<PRE>typedef typename std::iterator_traits<iterator>::value_type value_type;</PRE>
|
|
|
|
|
<P>The type pointed to by the iterators.</P>
|
|
|
|
|
<PRE>typedef typename std::iterator_traits<iterator>::difference_type difference_type;</PRE>
|
|
|
|
|
<P>A type that represents the difference between two iterators.</P>
|
|
|
|
|
<PRE>typedef iterator iterator_type;</PRE>
|
|
|
|
|
<P>The iterator type.</P>
|
|
|
|
|
<PRE>iterator first</PRE>
|
|
|
|
|
<P>An iterator denoting the position of the start of the match.</P>
|
|
|
|
|
<PRE>iterator second</PRE>
|
|
|
|
|
<P>An iterator denoting the position of the end of the match.</P>
|
|
|
|
|
<PRE>bool matched</PRE>
|
|
|
|
|
<P>A Boolean value denoting whether this sub-expression participated in the match.</P>
|
|
|
|
|
<PRE>static difference_type length();</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>(matched ? 0 : distance(first, second))</CODE>.</P><PRE>operator basic_string<value_type>()const;</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>(matched ? basic_string<value_type>(first,
|
|
|
|
|
second) : basic_string<value_type>()).</P></CODE><PRE>basic_string<value_type> str()const;</PRE>
|
|
|
|
|
|
|
|
|
|
<P><B>
|
|
|
|
|
Effects: </B>returns <CODE>(matched ? basic_string<value_type>(first,
|
|
|
|
|
second) : basic_string<value_type>())</CODE>.</P><PRE>int compare(const sub_match& s)const;</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>str().compare(s.str())</CODE>.</P><PRE>int compare(const basic_string<value_type>& s)const;</PRE>
|
|
|
|
|
|
|
|
|
|
<P><B>
|
|
|
|
|
Effects: </B>returns <CODE>str().compare(s)</CODE>.</P><PRE>int compare(const value_type* s)const;</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>str().compare(s)</CODE>.</P>
|
|
|
|
|
<H4>
|
|
|
|
|
sub_match non-member operators</H4>
|
|
|
|
|
<PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.compare(rhs) == 0</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.compare(rhs) != 0</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.compare(rhs) < 0</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);</PRE>
|
|
|
|
|
|
|
|
|
|
<P><B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.compare(rhs) <= 0</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.compare(rhs) >= 0</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs);</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.compare(rhs) > 0</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs < rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs > rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs >= rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs <= rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() < rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() > rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() >= rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const* rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() <= rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs < rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs > rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs >= rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
|
|
|
|
|
const sub_match<BidirectionalIterator>& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs <= rhs.str()</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator == (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator != (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator < (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() < rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator > (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() > rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator >= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() >= rhs</CODE>.</P><PRE>template <class BidirectionalIterator>
|
|
|
|
|
bool operator <= (const sub_match<BidirectionalIterator>& lhs,
|
|
|
|
|
typename iterator_traits<BidirectionalIterator>::value_type const& rhs); </PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>lhs.str() <= rhs</CODE>.</P><PRE>template <class charT, class traits, class BidirectionalIterator>
|
|
|
|
|
basic_ostream<charT, traits>&
|
|
|
|
|
operator << (basic_ostream<charT, traits>& os
|
|
|
|
|
const sub_match<BidirectionalIterator>& m);</PRE>
|
|
|
|
|
|
|
|
|
|
<P> <B>
|
|
|
|
|
Effects: </B>returns <CODE>(os << m.str())</CODE>.
|
|
|
|
|
<HR>
|
|
|
|
|
<p>Revised
|
|
|
|
|
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
|
|
|
|
|
17 May 2003
|
|
|
|
|
<!--webbot bot="Timestamp" endspan i-checksum="39359" -->
|
|
|
|
|
</p>
|
|
|
|
|
<P><I><EFBFBD> Copyright <a href="mailto:jm@regex.fsnet.co.uk">John Maddock</a> 1998-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></I></P>
|
|
|
|
|
<P align="left"><I>Permission to use, copy, modify, distribute and sell this software
|
|
|
|
|
and its documentation for any purpose is hereby granted without fee, provided
|
|
|
|
|
that the above copyright notice appear in all copies and that both that
|
|
|
|
|
copyright notice and this permission notice appear in supporting documentation.
|
|
|
|
|
Dr John Maddock makes no representations about the suitability of this software
|
|
|
|
|
for any purpose. It is provided "as is" without express or implied warranty.</I></P>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
|
|
|
|
|
|