# std::match_results< _Bi_iter, _Allocator > Class Template Reference
[Regular Expressions]

The results of a match or search operation. More...

Inheritance diagram for std::match_results< _Bi_iter, _Allocator >:

List of all members.

## Private Types

- typedef
  _Tp_alloc_type::const_pointer const_pointer
- typedef std::reverse_iterator
  < const_iterator > const_reverse_iterator
- typedef _Tp_alloc_type::pointer pointer
- typedef std::reverse_iterator
  < iterator > reverse_iterator

## Private Member Functions

- _Tp_alloc_type::pointer _M_allocate (size_t __n)
- pointer _M_allocate_and_copy (size_type __n, _ForwardIterator __first, _ForwardIterator __last)
- void _M_assign_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
- void _M_assign_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
- void _M_assign_dispatch (_InputIterator __first, _InputIterator __last, __false_type)
- void _M_assign_dispatch (_Integer __n, _Integer __val, __true_type)
- size_type _M_check_len (size_type __n, const char *__s) const
- void _M_deallocate (typename _Tp_alloc_type::pointer __p, size_t __n)
- void _M_erase_at_end (pointer __pos)
- void _M_fill_assign (size_type __n, const value_type &__val)
- void _M_fill_initialize (size_type __n, const value_type &__value)
- void _M_fill_insert (iterator __pos, size_type __n, const value_type &__x)
- const _Tp_alloc_type & _M_get_Tp_allocator () const
- _Tp_alloc_type & _M_get_Tp_allocator ()
- void _M_initialize_dispatch (_InputIterator __first, _InputIterator __last, __false_type)
- void _M_initialize_dispatch (_Integer __n, _Integer __value, __true_type)
- void _M_insert_aux (iterator __position, _Args &&...__args)
- void _M_insert_dispatch (iterator __pos, _InputIterator __first, _InputIterator __last, __false_type)
- void _M_insert_dispatch (iterator __pos, _Integer __n, _Integer __val, __true_type)
- void _M_range_check (size_type __n) const
- void _M_range_initialize (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
- void _M_range_initialize (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
- void _M_range_insert (iterator __pos, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
- void _M_range_insert (iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag)
- void assign (initializer_list< value_type > __l)
- void assign (_InputIterator __first, _InputIterator __last)
- void assign (size_type __n, const value_type &__val)
- const_reference at (size_type __n) const
- reference at (size_type __n)
- const_reference back () const
- reference back ()
- iterator begin ()
- size_type capacity () const
- void clear ()
- const_reverse_iterator crbegin () const
- const_reverse_iterator crend () const
- const_pointer data () const
- pointer data ()
- iterator emplace (iterator __position, _Args &&...__args)
- void emplace_back (_Args &&...__args)
- iterator end ()
- iterator erase (iterator __first, iterator __last)
- iterator erase (iterator __position)
- const_reference front () const
- reference front ()
- allocator_type get_allocator () const
- void insert (iterator __position, _InputIterator __first, _InputIterator __last)
- void insert (iterator __position, size_type __n, const value_type &__x)
- void insert (iterator __position, initializer_list< value_type > __l)
- iterator insert (iterator __position, value_type &&__x)
- iterator insert (iterator __position, const value_type &__x)
- size_type max_size () const
- const_reference operator[] (size_type __n) const
- reference operator[] (size_type __n)
- void pop_back ()
- void push_back (value_type &&__x)
- void push_back (const value_type &__x)
- const_reverse_iterator rbegin () const
- reverse_iterator rbegin ()
- const_reverse_iterator rend () const
- reverse_iterator rend ()
- void reserve (size_type __n)
- void resize (size_type __new_size, value_type __x=value_type())
- void swap (vector &&__x)

## Private Attributes

- _Vector_impl _M_impl

## 10.? Public Types

- typedef _Allocator allocator_type
- typedef iterator_traits
  < _Bi_iter >::value_type char_type
- typedef _Base_type::const_iterator const_iterator
- typedef _Allocator::const_reference const_reference
- typedef iterator_traits
  < _Bi_iter >::difference_type difference_type
- typedef const_iterator iterator
- typedef const_reference reference
- typedef _Allocator::size_type size_type
- typedef basic_string< char_type > string_type
- typedef sub_match< _Bi_iter > value_type

## 10.3 Element Access

- const_iterator begin () const
- const_iterator cbegin () const
- const_iterator cend () const
- const_iterator end () const
- difference_type length (size_type __sub=0) const
- const_reference operator[] (size_type __sub) const
- difference_type position (size_type __sub=0) const
- const_reference prefix () const
- string_type str (size_type __sub=0) const
- const_reference suffix () const

## 10.2 Size

- bool empty () const
- size_type size () const

## 10.4 Formatting

These functions perform formatted substitution of the matched character sequences into their target. The format specifiers and escape sequences accepted by these functions are determined by their `flags` parameter as documented above.

- string_type format (const string_type &__fmt, regex_constants::match_flag_type __flags=regex_constants::format_default) const
- template<typename _Out_iter > _Out_iter format (_Out_iter __out, const string_type &__fmt, regex_constants::match_flag_type __flags=regex_constants::format_default) const

## 10.1 Construction, Copying, and Destruction

- match_results (const match_results &__rhs)
- match_results (const _Allocator &__a=_Allocator())
- match_results & operator= (const match_results &__rhs)
- ~match_results ()

## 10.6 Swap

- void swap (match_results &__that)

## Detailed Description

### template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>
class std::match_results< _Bi_iter, _Allocator >

The results of a match or search operation.

A collection of character sequences representing the result of a regular expression match. Storage for the collection is allocated and freed as necessary by the member functions of class template match_results.

This class satisfies the Sequence requirements, with the exception that only the operations defined for a const-qualified Sequence are supported.

The sub_match object stored at index 0 represents sub-expression 0, i.e. the whole match. In this case the sub_match member matched is always true. The sub_match object stored at index n denotes what matched the marked sub-expression n within the matched expression. If the sub-expression n participated in a regular expression match then the sub_match member matched evaluates to true, and members first and second denote the range of characters [first, second) which formed that match. Otherwise matched is false, and members first and second point to the end of the sequence that was searched.

Definition at line 1763 of file tr1_impl/regex.

## Constructor & Destructor Documentation

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

std::match_results< _Bi_iter, _Allocator >::match_results | ( | const _Allocator & | __a = `_Allocator()` | ) | `[inline, explicit]`

Constructs a default match_results container.

Postcondition:
  size() returns 0 and str() returns an empty string.

Definition at line 1799 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

std::match_results< _Bi_iter, _Allocator >::match_results | ( | const match_results< _Bi_iter, _Allocator > & | __rhs | ) | `[inline]`

Copy constructs a match_results.

Definition at line 1806 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

std::match_results< _Bi_iter, _Allocator >::~match_results | ( |  | ) | `[inline]`

Destroys a match_results object.

Definition at line 1825 of file tr1_impl/regex.

## Member Function Documentation

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

const_iterator std::match_results< _Bi_iter, _Allocator >::begin | ( |  | ) | const`[inline]`

Gets an iterator to the start of the sub_match collection.

Reimplemented from std::vector< std::sub_match< _Bi_iter >, _Allocator >.

Definition at line 1947 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

const_iterator std::match_results< _Bi_iter, _Allocator >::cbegin | ( |  | ) | const`[inline]`

Gets an iterator to the start of the sub_match collection.

Reimplemented from std::vector< std::sub_match< _Bi_iter >, _Allocator >.

Definition at line 1955 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

const_iterator std::match_results< _Bi_iter, _Allocator >::cend | ( |  | ) | const`[inline]`

Gets an iterator to one-past-the-end of the collection.

Reimplemented from std::vector< std::sub_match< _Bi_iter >, _Allocator >.

Definition at line 1971 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

bool std::match_results< _Bi_iter, _Allocator >::empty | ( |  | ) | const`[inline]`

Indicates if the match_results contains no results.

Return values:

  | true | The match_results object is empty.
  | false | The match_results object is not empty.

Reimplemented from std::vector< std::sub_match< _Bi_iter >, _Allocator >.

Definition at line 1858 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

const_iterator std::match_results< _Bi_iter, _Allocator >::end | ( |  | ) | const`[inline]`

Gets an iterator to one-past-the-end of the collection.

Reimplemented from std::vector< std::sub_match< _Bi_iter >, _Allocator >.

Definition at line 1963 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

string_type std::match_results< _Bi_iter, _Allocator >::format | ( | const string_type & | __fmt,
|  | regex_constants::match_flag_type | __flags = `regex_constants::format_default` |
| ) |  |  | const

Todo:
  Implement this function.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>
template<typename _Out_iter >

_Out_iter std::match_results< _Bi_iter, _Allocator >::format | ( | _Out_iter | __out,
|  | const string_type & | __fmt,
|  | regex_constants::match_flag_type | __flags = `regex_constants::format_default` |
| ) |  |  | const`[inline]`

Todo:
  Implement this function.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

difference_type std::match_results< _Bi_iter, _Allocator >::length | ( | size_type | __sub = `0` | ) | const`[inline]`

Gets the length of the indicated submatch.

Parameters:

  | sub | indicates the submatch.

This function returns the length of the indicated submatch, or the length of the entire match if `sub` is zero (the default).

Definition at line 1876 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

match_results& std::match_results< _Bi_iter, _Allocator >::operator= | ( | const match_results< _Bi_iter, _Allocator > & | __rhs | ) | `[inline]`

Assigns rhs to *this.

Definition at line 1815 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

const_reference std::match_results< _Bi_iter, _Allocator >::operator[] | ( | size_type | __sub | ) | const`[inline]`

Gets a sub_match reference for the match or submatch.

Parameters:

  | sub | indicates the submatch.

This function gets a reference to the indicated submatch, or the entire match if `sub` is zero.

If `sub` >= size() then this function returns a sub_match with a special value indicating no submatch.

Definition at line 1918 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

difference_type std::match_results< _Bi_iter, _Allocator >::position | ( | size_type | __sub = `0` | ) | const`[inline]`

Gets the offset of the beginning of the indicated submatch.

Parameters:

  | sub | indicates the submatch.

This function returns the offset from the beginning of the target sequence to the beginning of the submatch, unless the value of `sub` is zero (the default), in which case this function returns the offset from the beginning of the target sequence to the beginning of the match.

Definition at line 1890 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

const_reference std::match_results< _Bi_iter, _Allocator >::prefix | ( |  | ) | const`[inline]`

Gets a sub_match representing the match prefix.

This function gets a reference to a sub_match object representing the part of the target range between the start of the target range and the start of the match.

Definition at line 1929 of file tr1_impl/regex.

Referenced by std::match_results< _Bi_iter >::position().

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

size_type std::match_results< _Bi_iter, _Allocator >::size | ( |  | ) | const`[inline]`

Gets the number of matches and submatches.

The number of matches for a given regular expression will be either 0 if there was no match or mark_count() + 1 if a match was successful. Some matches may be empty.

Returns:
  the number of matches found.

Reimplemented from std::vector< std::sub_match< _Bi_iter >, _Allocator >.

Definition at line 1845 of file tr1_impl/regex.

Referenced by std::match_results< _Bi_iter >::empty().

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

string_type std::match_results< _Bi_iter, _Allocator >::str | ( | size_type | __sub = `0` | ) | const`[inline]`

Gets the match or submatch converted to a string type.

Parameters:

  | sub | indicates the submatch.

This function gets the submatch (or match, if `sub` is zero) extracted from the target range and converted to the associated string type.

Definition at line 1904 of file tr1_impl/regex.

Referenced by std::match_results< _Bi_iter >::length().

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

const_reference std::match_results< _Bi_iter, _Allocator >::suffix | ( |  | ) | const`[inline]`

Gets a sub_match representing the match suffix.

This function gets a reference to a sub_match object representing the part of the target range between the end of the match and the end of the target range.

Definition at line 1940 of file tr1_impl/regex.

template<typename _Bi_iter, typename _Allocator = allocator<sub_match<_Bi_iter> >>

void std::match_results< _Bi_iter, _Allocator >::swap | ( | match_results< _Bi_iter, _Allocator > & | __that | ) | `[inline]`

Swaps the contents of two match_results.

Definition at line 2029 of file tr1_impl/regex.

Referenced by std::match_results< _Bi_iter >::operator=(), std::swap(), and std::match_results< _Bi_iter >::swap().

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

- tr1_impl/regex