# std::sub_match< _BiIter > Class Template Reference
[Regular Expressions]

Inheritance diagram for std::sub_match< _BiIter >:

List of all members.

## Detailed Description

### template<typename _BiIter>
class std::sub_match< _BiIter >

A sequence of characters matched by a particular marked sub-expression.

An object of this class is essentially a pair of iterators marking a matched subexpression within a regular expression pattern match. Such objects can be converted to and compared with std::basic_string objects of a similar base character type as the pattern matched by the regular expression.

The iterators that make up the pair are the usual half-open interval referencing the actual original pattern matched.

Definition at line 955 of file tr1_impl/regex.

## Public Types

- typedef iterator_traits< _BiIter
  >::difference_type difference_type
- typedef _BiIter first_type
- typedef _BiIter iterator
- typedef _BiIter second_type
- typedef iterator_traits< _BiIter
  >::value_type value_type

## Public Member Functions

- int compare (const value_type *__s) const
- int compare (const basic_string< value_type > &__s) const
- int compare (const sub_match &__s) const
- difference_type length () const
- operator basic_string () const
- basic_string< value_type > str () const

## Public Attributes

- _BiIter first
- bool matched
- _BiIter second

## Member Typedef Documentation

typedef _BiIter std::pair< _BiIter , _BiIter >::first_type `[inherited]`

`first_type` is the first bound type

Definition at line 74 of file stl_pair.h.

typedef _BiIter std::pair< _BiIter , _BiIter >::second_type `[inherited]`

`second_type` is the second bound type

Definition at line 75 of file stl_pair.h.

## Member Function Documentation

template<typename _BiIter>

int std::sub_match< _BiIter >::compare | ( | const value_type * | __s | ) | const`[inline]`

Compares this sub_match to a C-style string.

Parameters:

  | s | A C-style string to compare to this sub_match.

Return values:

  | <0 | this matched sequence will collate before `s`.
  | =0 | this matched sequence is equivalent to `s`.
  | <0 | this matched sequence will collate after `s`.

Definition at line 1039 of file tr1_impl/regex.

References std::sub_match< _BiIter >::str().

template<typename _BiIter>

int std::sub_match< _BiIter >::compare | ( | const basic_string< value_type > & | __s | ) | const`[inline]`

Compares this sub_match to a string.

Parameters:

  | s | A string to compare to this sub_match.

Return values:

  | <0 | this matched sequence will collate before `s`.
  | =0 | this matched sequence is equivalent to `s`.
  | <0 | this matched sequence will collate after `s`.

Definition at line 1026 of file tr1_impl/regex.

References std::sub_match< _BiIter >::str().

template<typename _BiIter>

int std::sub_match< _BiIter >::compare | ( | const sub_match< _BiIter > & | __s | ) | const`[inline]`

Compares this and another matched sequence.

Parameters:

  | s | Another matched sequence to compare to this one.

Return values:

  | <0 | this matched sequence will collate before `s`.
  | =0 | this matched sequence is equivalent to `s`.
  | <0 | this matched sequence will collate after `s`.

Definition at line 1013 of file tr1_impl/regex.

References std::sub_match< _BiIter >::str().

Referenced by std::operator!=(), std::operator==(), std::operator>(), and std::operator>=().

template<typename _BiIter>

difference_type std::sub_match< _BiIter >::length | ( |  | ) | const`[inline]`

Gets the length of the matching sequence.

Definition at line 970 of file tr1_impl/regex.

References std::distance(), and std::sub_match< _BiIter >::matched.

template<typename _BiIter>

std::sub_match< _BiIter >::operator basic_string | ( |  | ) | const`[inline]`

Gets the matching sequence as a string.

Returns:
  the matching sequence as a string.

This is the implicit conversion operator. It is identical to the str() member function except that it will want to pop up in unexpected places and cause a great deal of confusion and cursing from the unwary.

Definition at line 983 of file tr1_impl/regex.

References std::pair< _BiIter, _BiIter >::first, std::sub_match< _BiIter >::matched, and std::pair< _BiIter, _BiIter >::second.

template<typename _BiIter>

basic_string<value_type> std::sub_match< _BiIter >::str | ( |  | ) | const`[inline]`

Gets the matching sequence as a string.

Returns:
  the matching sequence as a string.

Definition at line 996 of file tr1_impl/regex.

References std::pair< _BiIter, _BiIter >::first, std::sub_match< _BiIter >::matched, and std::pair< _BiIter, _BiIter >::second.

Referenced by std::sub_match< _BiIter >::compare(), std::operator!=(), std::operator<(), std::operator<=(), std::operator==(), std::operator>(), and std::operator>=().

## Member Data Documentation

_BiIter std::pair< _BiIter , _BiIter >::first `[inherited]`

`first` is a copy of the first object

Definition at line 77 of file stl_pair.h.

Referenced by std::sub_match< _BiIter >::operator basic_string(), and std::sub_match< _BiIter >::str().

_BiIter std::pair< _BiIter , _BiIter >::second `[inherited]`

`second` is a copy of the second object

Definition at line 78 of file stl_pair.h.

Referenced by std::sub_match< _BiIter >::operator basic_string(), and std::sub_match< _BiIter >::str().

The documentation for this class was generated from the following file:

- tr1_impl/regex