libstdc++
std::sub_match< _BiIter > Class Template Reference

#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 ( )
inlineconstexprnoexcept

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
__sA string to compare to this `sub_match`.
Return values
negativeThis matched sequence will collate before `__s`.
zeroThis matched sequence is equivalent to `__s`.
positiveThis 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
__sAnother matched sequence to compare to this one.
Return values
negativeThis matched sequence will collate before `__s`.
zeroThis matched sequence is equivalent to `__s`.
positiveThis matched sequence will collate after `__s`.

Definition at line 918 of file regex.h.

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

◆ 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
__sA string to compare to this `sub_match`.
Return values
negativeThis matched sequence will collate before `__s`.
zeroThis matched sequence is equivalent to `__s`.
positiveThis 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
inlinenoexcept

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)
inlinenoexceptinherited

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: