std::sub_match< _BiIter > Class Template Reference
Regular Expressions
Inheritance diagram for std::sub_match< _BiIter >:
[legend]

## Public Types

using | _PCCFP = _PCC<!is_same< _BiIter, _U1 >::value||!is_same< _BiIter, _U2 >::value, _BiIter, _BiIter >
using | _PCCP = _PCC< true, _BiIter, _BiIter >
typedef __iter_traits::difference_type | difference_type
typedef _BiIter | first_type
typedef _BiIter | iterator
typedef _BiIter | second_type
typedef std::basic_string< value_type > | string_type
typedef __iter_traits::value_type | value_type

## Public Member Functions

int | compare (const sub_match &__s) const
int | compare (const string_type &__s) const
int | compare (const value_type *__s) const
difference_type | length () const
| operator string_type () const
string_type | str () const
void | swap (pair &__p) noexcept(__is_nothrow_swappable< _BiIter >::value &&__is_nothrow_swappable< _BiIter >::value)

## Public Attributes

_BiIter | first
bool | matched
_BiIter | second

## 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 864 of file regex.h.

## Member Typedef Documentation

## _PCCFP

using std::pair< _BiIter , _BiIter >::_PCCFP = _PCC<!is_same<_BiIter , _U1>::value || !is_same<_BiIter , _U2>::value, _BiIter , _BiIter >

inherited

There is also a templated copy ctor for the `pair` class itself.

Definition at line 279 of file stl_pair.h.

## _PCCP

using std::pair< _BiIter , _BiIter >::_PCCP = _PCC<true, _BiIter , _BiIter >

inherited

Two objects may be passed to a `pair` constructor to be copied.

Definition at line 248 of file stl_pair.h.

## second_type

typedef _BiIter std::pair< _BiIter , _BiIter >::second_type

inherited

`first_type` is the first bound type

Definition at line 208 of file stl_pair.h.

## Member Function Documentation

## compare() [1/3]

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 925 of file regex.h.

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

## compare() [2/3]

template<typename _BiIter>

int std::sub_match< _BiIter >::compare | ( | const string_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 938 of file regex.h.

## compare() [3/3]

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 951 of file regex.h.

## length()

template<typename _BiIter>

difference_type std::sub_match< _BiIter >::length | ( |  | ) | const

inline

Gets the length of the matching sequence.

Definition at line 882 of file regex.h.

## operator string_type()

template<typename _BiIter>

std::sub_match< _BiIter >::operator string_type | ( |  | ) | 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 895 of file regex.h.

## str()

template<typename _BiIter>

string_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 908 of file regex.h.

Referenced by std::sub_match< _Bi_iter >::compare(), and std::operator<<().

## Member Data Documentation

## first

_BiIter std::pair< _BiIter , _BiIter >::first

inherited

`second_type` is the second bound type

Definition at line 210 of file stl_pair.h.

## second

_BiIter std::pair< _BiIter , _BiIter >::second

inherited

`first` is a copy of the first object

Definition at line 211 of file stl_pair.h.

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

- regex.h