std::sub_match< _BiIter > Class Template Reference
Regular Expressions

`#include <regex.h>`

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 basic_string< value_type > | string_type
typedef __iter_traits::value_type | value_type

## Public Member Functions

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

## 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 863 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 281 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 252 of file stl_pair.h.

## difference_type

template<typename _BiIter >

typedef __iter_traits::difference_type std::sub_match< _BiIter >::difference_type

Definition at line 869 of file regex.h.

## first_type

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

inherited

Definition at line 211 of file stl_pair.h.

## iterator

template<typename _BiIter >

typedef _BiIter std::sub_match< _BiIter >::iterator

Definition at line 870 of file regex.h.

## second_type

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

inherited

`first_type` is the first bound type

Definition at line 212 of file stl_pair.h.

## string_type

template<typename _BiIter >

typedef basic_string<value_type> std::sub_match< _BiIter >::string_type

Definition at line 871 of file regex.h.

## value_type

template<typename _BiIter >

typedef __iter_traits::value_type std::sub_match< _BiIter >::value_type

Definition at line 868 of file regex.h.

## Constructor & Destructor Documentation

## sub_match()

template<typename _BiIter >

constexpr std::sub_match< _BiIter >::sub_match | ( |  | ) |

inline constexpr noexcept

Definition at line 875 of file regex.h.

## Member Function Documentation

## _M_compare()

template<typename _BiIter >

int std::sub_match< _BiIter >::_M_compare | ( | const value_type * | __s,
|  | size_t | __n
| ) |  | const

inline

Definition at line 942 of file regex.h.

## compare() [1/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

  negative | This matched sequence will collate before `__s`.
  zero | This matched sequence is equivalent to `__s`.
  positive | This matched sequence will collate after `__s`.

Definition at line 932 of file regex.h.

## compare() [2/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

  negative | This matched sequence will collate before `__s`.
  zero | This matched sequence is equivalent to `__s`.
  positive | This matched sequence will collate after `__s`.

Definition at line 918 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 string.

Parameters

  __s | A string to compare to this `sub_match`.

Return values

  negative | This matched sequence will collate before `__s`.
  zero | This matched sequence is equivalent to `__s`.
  positive | This matched sequence will collate after `__s`.

Definition at line 936 of file regex.h.

## length()

template<typename _BiIter >

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

inline noexcept

Gets the length of the matching sequence.

Definition at line 879 of file regex.h.

References std::distance(), std::pair< _BiIter, _BiIter >::first, and std::pair< _BiIter, _BiIter >::second.

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

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

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

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

Referenced by std::sub_match< _BiIter >::operator string_type().

## swap()

void std::pair< _BiIter , _BiIter >::swap | ( | pair< _BiIter, _BiIter > & | __p | ) |

inline noexcept inherited

Definition at line 424 of file stl_pair.h.

## Member Data Documentation

## first

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

inherited

`second_type` is the second bound type

Definition at line 214 of file stl_pair.h.

## matched

template<typename _BiIter >

bool std::sub_match< _BiIter >::matched

Definition at line 873 of file regex.h.

## second

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

inherited

`first` is a copy of the first object

Definition at line 215 of file stl_pair.h.

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

- regex.h