Provided by: libstdc++-11-doc_11.4.0-9ubuntu1_all bug

NAME

       std::sub_match< _BiIter >

SYNOPSIS

       #include <regex.h>

       Inherits std::pair< _BiIter, _BiIter >.

   Public Types
       typedef __iter_traits::difference_type difference_type
       typedef _BiIter first_type
           The type of the first member.
       typedef _BiIter iterator
       typedef _BiIter second_type
           The type of the second member.
       typedef basic_string< value_type > string_type
       typedef __iter_traits::value_type value_type

   Public Member Functions
       int compare (const sub_match &__s) const
           Compares this and another matched sequence.
       difference_type length () const noexcept
           Gets the length of the matching sequence.
       operator string_type () const
           Gets the matching sequence as a string.
       string_type str () const
           Gets the matching sequence as a string.
       constexpr void swap (pair &__p) noexcept(__and_< __is_nothrow_swappable< _BiIter >,
           __is_nothrow_swappable< _BiIter > >::value)
           Swap the first members and then the second members.

           int compare (const string_type &__s) const
               Compares this sub_match to a string.
           int compare (const value_type *__s) const
               Compares this sub_match to a string.

   Public Attributes
       _BiIter first
           The first member.
       bool matched
       _BiIter second
           The second member.

   Related Symbols
       (Note that these are not member symbols.)
       constexpr pair< typename __decay_and_strip< _BiIter >::__type, typename __decay_and_strip<
           _BiIter >::__type > make_pair (_BiIter &&__x, _BiIter &&__y)
           A convenience wrapper for creating a pair from two objects.

           template<typename _BiIter > bool operator== (const sub_match< _BiIter > &__lhs, const
               sub_match< _BiIter > &__rhs)
               Tests the equivalence of two regular expression submatches.
           template<typename _BiIter > bool operator!= (const sub_match< _BiIter > &__lhs, const
               sub_match< _BiIter > &__rhs)
               Tests the inequivalence of two regular expression submatches.
           template<typename _BiIter > bool operator< (const sub_match< _BiIter > &__lhs, const
               sub_match< _BiIter > &__rhs)
               Tests the ordering of two regular expression submatches.
           template<typename _BiIter > bool operator<= (const sub_match< _BiIter > &__lhs, const
               sub_match< _BiIter > &__rhs)
               Tests the ordering of two regular expression submatches.
           template<typename _BiIter > bool operator>= (const sub_match< _BiIter > &__lhs, const
               sub_match< _BiIter > &__rhs)
               Tests the ordering of two regular expression submatches.
           template<typename _BiIter > bool operator> (const sub_match< _BiIter > &__lhs, const
               sub_match< _BiIter > &__rhs)
               Tests the ordering of two regular expression submatches.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator== (const __sub_match_string< _Bi_iter, _Ch_traits, _Ch_alloc > &__lhs,
               const sub_match< _Bi_iter > &__rhs)
               Tests the equivalence of a string and a regular expression submatch.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator!= (const __sub_match_string< _Bi_iter, _Ch_traits, _Ch_alloc > &__lhs,
               const sub_match< _Bi_iter > &__rhs)
               Tests the inequivalence of a string and a regular expression submatch.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool operator<
               (const __sub_match_string< _Bi_iter, _Ch_traits, _Ch_alloc > &__lhs, const
               sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a string and a regular expression submatch.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool operator>
               (const __sub_match_string< _Bi_iter, _Ch_traits, _Ch_alloc > &__lhs, const
               sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a string and a regular expression submatch.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator>= (const __sub_match_string< _Bi_iter, _Ch_traits, _Ch_alloc > &__lhs,
               const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a string and a regular expression submatch.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator<= (const __sub_match_string< _Bi_iter, _Ch_traits, _Ch_alloc > &__lhs,
               const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a string and a regular expression submatch.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator== (const sub_match< _Bi_iter > &__lhs, const __sub_match_string<
               _Bi_iter, _Ch_traits, _Ch_alloc > &__rhs)
               Tests the equivalence of a regular expression submatch and a string.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator!= (const sub_match< _Bi_iter > &__lhs, const __sub_match_string<
               _Bi_iter, _Ch_traits, _Ch_alloc > &__rhs)
               Tests the inequivalence of a regular expression submatch and a string.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool operator<
               (const sub_match< _Bi_iter > &__lhs, const __sub_match_string< _Bi_iter,
               _Ch_traits, _Ch_alloc > &__rhs)
               Tests the ordering of a regular expression submatch and a string.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool operator>
               (const sub_match< _Bi_iter > &__lhs, const __sub_match_string< _Bi_iter,
               _Ch_traits, _Ch_alloc > &__rhs)
               Tests the ordering of a regular expression submatch and a string.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator>= (const sub_match< _Bi_iter > &__lhs, const __sub_match_string<
               _Bi_iter, _Ch_traits, _Ch_alloc > &__rhs)
               Tests the ordering of a regular expression submatch and a string.
           template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc > bool
               operator<= (const sub_match< _Bi_iter > &__lhs, const __sub_match_string<
               _Bi_iter, _Ch_traits, _Ch_alloc > &__rhs)
               Tests the ordering of a regular expression submatch and a string.
           template<typename _Bi_iter > bool operator== (typename iterator_traits< _Bi_iter
               >::value_type const *__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the equivalence of a C string and a regular expression submatch.
           template<typename _Bi_iter > bool operator!= (typename iterator_traits< _Bi_iter
               >::value_type const *__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the inequivalence of a C string and a regular expression submatch.
           template<typename _Bi_iter > bool operator< (typename iterator_traits< _Bi_iter
               >::value_type const *__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a C string and a regular expression submatch.
           template<typename _Bi_iter > bool operator> (typename iterator_traits< _Bi_iter
               >::value_type const *__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a C string and a regular expression submatch.
           template<typename _Bi_iter > bool operator>= (typename iterator_traits< _Bi_iter
               >::value_type const *__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a C string and a regular expression submatch.
           template<typename _Bi_iter > bool operator<= (typename iterator_traits< _Bi_iter
               >::value_type const *__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a C string and a regular expression submatch.
           template<typename _Bi_iter > bool operator== (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const *__rhs)
               Tests the equivalence of a regular expression submatch and a C string.
           template<typename _Bi_iter > bool operator!= (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const *__rhs)
               Tests the inequivalence of a regular expression submatch and a string.
           template<typename _Bi_iter > bool operator< (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const *__rhs)
               Tests the ordering of a regular expression submatch and a C string.
           template<typename _Bi_iter > bool operator> (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const *__rhs)
               Tests the ordering of a regular expression submatch and a C string.
           template<typename _Bi_iter > bool operator>= (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const *__rhs)
               Tests the ordering of a regular expression submatch and a C string.
           template<typename _Bi_iter > bool operator<= (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const *__rhs)
               Tests the ordering of a regular expression submatch and a C string.
           template<typename _Bi_iter > bool operator== (typename iterator_traits< _Bi_iter
               >::value_type const &__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the equivalence of a character and a regular expression submatch.
           template<typename _Bi_iter > bool operator!= (typename iterator_traits< _Bi_iter
               >::value_type const &__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the inequivalence of a character and a regular expression submatch.
           template<typename _Bi_iter > bool operator< (typename iterator_traits< _Bi_iter
               >::value_type const &__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a character and a regular expression submatch.
           template<typename _Bi_iter > bool operator> (typename iterator_traits< _Bi_iter
               >::value_type const &__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a character and a regular expression submatch.
           template<typename _Bi_iter > bool operator>= (typename iterator_traits< _Bi_iter
               >::value_type const &__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a character and a regular expression submatch.
           template<typename _Bi_iter > bool operator<= (typename iterator_traits< _Bi_iter
               >::value_type const &__lhs, const sub_match< _Bi_iter > &__rhs)
               Tests the ordering of a character and a regular expression submatch.
           template<typename _Bi_iter > bool operator== (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const &__rhs)
               Tests the equivalence of a regular expression submatch and a character.
           template<typename _Bi_iter > bool operator!= (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const &__rhs)
               Tests the inequivalence of a regular expression submatch and a character.
           template<typename _Bi_iter > bool operator< (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const &__rhs)
               Tests the ordering of a regular expression submatch and a character.
           template<typename _Bi_iter > bool operator> (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const &__rhs)
               Tests the ordering of a regular expression submatch and a character.
           template<typename _Bi_iter > bool operator>= (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const &__rhs)
               Tests the ordering of a regular expression submatch and a character.
           template<typename _Bi_iter > bool operator<= (const sub_match< _Bi_iter > &__lhs,
               typename iterator_traits< _Bi_iter >::value_type const &__rhs)
               Tests the ordering of a regular expression submatch and a character.
           template<typename _Ch_type , typename _Ch_traits , typename _Bi_iter > basic_ostream<
               _Ch_type, _Ch_traits > & operator<< (basic_ostream< _Ch_type, _Ch_traits > &__os,
               const sub_match< _Bi_iter > &__m)
               Inserts a matched string into an output stream.

           constexpr enable_if< __and_< __is_swappable< _BiIter >, __is_swappable< _BiIter >
               >::value >::type swap (pair< _BiIter, _BiIter > &__x, pair< _BiIter, _BiIter >
               &__y) noexcept(noexcept(__x.swap(__y)))
           constexpr bool operator== (const pair< _BiIter, _BiIter > &__x, const pair< _BiIter,
               _BiIter > &__y)
           constexpr bool operator< (const pair< _BiIter, _BiIter > &__x, const pair< _BiIter,
               _BiIter > &__y)
           constexpr bool operator!= (const pair< _BiIter, _BiIter > &__x, const pair< _BiIter,
               _BiIter > &__y)
               Uses operator== to find the result.
           constexpr bool operator> (const pair< _BiIter, _BiIter > &__x, const pair< _BiIter,
               _BiIter > &__y)
               Uses operator< to find the result.
           constexpr bool operator<= (const pair< _BiIter, _BiIter > &__x, const pair< _BiIter,
               _BiIter > &__y)
               Uses operator< to find the result.
           constexpr bool operator>= (const pair< _BiIter, _BiIter > &__x, const pair< _BiIter,
               _BiIter > &__y)
               Uses operator< to find the result.

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.

Member Typedef Documentation

   typedef _BiIter  std::pair< _BiIter , _BiIter  >::first_type [inherited]
       The type of the first member.

   typedef _BiIter  std::pair< _BiIter , _BiIter  >::second_type [inherited]
       The type of the second member.

Member Function Documentation

   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.

   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.

   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.

   template<typename _BiIter > difference_type std::sub_match< _BiIter >::length () const
       [inline],  [noexcept]
       Gets the length of the matching sequence.

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

   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.

       References std::sub_match< _BiIter >::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.

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

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

   constexpr void std::pair< _BiIter , _BiIter  >::swap (pair< _BiIter, _BiIter > & __p)
       [inline],  [constexpr],  [noexcept],  [inherited]
       Swap the first members and then the second members.

Friends And Related Symbol Documentation

   constexpr pair< typename __decay_and_strip< _BiIter  >::__type, typename __decay_and_strip<
       _BiIter  >::__type > make_pair (_BiIter  && __x, _BiIter  && __y) [related]
       A convenience wrapper for creating a pair from two objects.

       Parameters
           __x The first object.
           __y The second object.

       Returns
           A newly-constructed pair<> object of the appropriate type.

       The C++98 standard says the objects are passed by reference-to-const, but C++03 says they
       are passed by value (this was LWG issue #181).

       Since C++11 they have been passed by forwarding reference and then forwarded to the new
       members of the pair. To create a pair with a member of reference type, pass a
       reference_wrapper to this function.

   constexpr bool operator!= (const pair< _BiIter , _BiIter  > & __x, const pair< _BiIter ,
       _BiIter  > & __y) [related]
       Uses operator== to find the result.

   constexpr bool operator< (const pair< _BiIter , _BiIter  > & __x, const pair< _BiIter ,
       _BiIter  > & __y) [related]
       Defines a lexicographical order for pairs.

       For two pairs of the same type, P is ordered before Q if P.first is less than Q.first, or
       if P.first and Q.first are equivalent (neither is less than the other) and P.second is
       less than Q.second.

   constexpr bool operator<= (const pair< _BiIter , _BiIter  > & __x, const pair< _BiIter ,
       _BiIter  > & __y) [related]
       Uses operator< to find the result.

   constexpr bool operator== (const pair< _BiIter , _BiIter  > & __x, const pair< _BiIter ,
       _BiIter  > & __y) [related]
       Two pairs of the same type are equal iff their members are equal.

   constexpr bool operator> (const pair< _BiIter , _BiIter  > & __x, const pair< _BiIter ,
       _BiIter  > & __y) [related]
       Uses operator< to find the result.

   constexpr bool operator>= (const pair< _BiIter , _BiIter  > & __x, const pair< _BiIter ,
       _BiIter  > & __y) [related]
       Uses operator< to find the result.

   constexpr enable_if< __and_< __is_swappable< _BiIter  >, __is_swappable< _BiIter  > >::value
       >::type swap (pair< _BiIter , _BiIter  > & __x, pair< _BiIter , _BiIter  > & __y)
       [related]
       Swap overload for pairs. Calls std::pair::swap().

       Note
           This std::swap overload is not declared in C++03 mode, which has performance
           implications, e.g. see https://gcc.gnu.org/PR38466

Member Data Documentation

   _BiIter  std::pair< _BiIter , _BiIter  >::first [inherited]
       The first member.

   _BiIter  std::pair< _BiIter , _BiIter  >::second [inherited]
       The second member.

Author

       Generated automatically by Doxygen for libstdc++ from the source code.

                                            libstdc++             std::sub_match< _BiIter >(3cxx)