libstdc++: std::regex_traits< _Ch_type > Class Template Reference

libstdc++

std::regex_traits< _Ch_type > Class Template Reference
Regular Expressions

`#include <regex>`

## Public Types
typedef _RegexMask | char_class_type
typedef _Ch_type | char_type
typedef std::locale | locale_type
typedef std::basic_string< char_type > | string_type

## Public Member Functions
| regex_traits ()
locale_type | getloc () const
locale_type | imbue (locale_type __loc)
bool | isctype (_Ch_type __c, char_class_type __f) const
template<typename _Fwd_iter>
char_class_type | lookup_classname (_Fwd_iter __first, _Fwd_iter __last, bool __icase=false) const
template<typename _Fwd_iter>
string_type | lookup_collatename (_Fwd_iter __first, _Fwd_iter __last) const
template<typename _Fwd_iter>
string_type | transform (_Fwd_iter __first, _Fwd_iter __last) const
template<typename _Fwd_iter>
string_type | transform_primary (_Fwd_iter __first, _Fwd_iter __last) const
char_type | translate (char_type __c) const
char_type | translate_nocase (char_type __c) const
int | value (_Ch_type __ch, int __radix) const

## Static Public Member Functions
static std::size_t | length (const char_type *__p)

## Protected Attributes
locale_type | _M_locale

## Detailed Description

template<typename _Ch_type>
class std::regex_traits< _Ch_type >

Describes aspects of a regular expression.

A regular expression traits class that satisfies the requirements of section [28.7].

The class regex is parameterized around a set of related types and functions used to complete the definition of its semantics. This class satisfies the requirements of such a traits class.

Since
  C++11

Definition at line 99 of file regex.h.

## Member Typedef Documentation

## ◆ char_class_type

template<typename _Ch_type>

typedef _RegexMask std::regex_traits< _Ch_type >::char_class_type

Definition at line 173 of file regex.h.

## ◆ char_type

template<typename _Ch_type>

typedef _Ch_type std::regex_traits< _Ch_type >::char_type

Definition at line 102 of file regex.h.

## ◆ locale_type

template<typename _Ch_type>

typedef std::locale std::regex_traits< _Ch_type >::locale_type

Definition at line 104 of file regex.h.

## ◆ string_type

template<typename _Ch_type>

typedef std::basic_string<char_type> std::regex_traits< _Ch_type >::string_type

Definition at line 103 of file regex.h.

## Constructor & Destructor Documentation

## ◆ regex_traits()

template<typename _Ch_type>

std::regex_traits< _Ch_type >::regex_traits | ( |  | ) |
| inline

Constructs a default traits object.

Definition at line 179 of file regex.h.

Referenced by value().

## Member Function Documentation

## ◆ getloc()

template<typename _Ch_type>

locale_type std::regex_traits< _Ch_type >::getloc | ( |  | ) | const
| inline

Gets a copy of the current locale in use by the regex_traits object.

Definition at line 411 of file regex.h.

## ◆ imbue()

template<typename _Ch_type>

locale_type std::regex_traits< _Ch_type >::imbue | ( | locale_type | __loc | ) |
| inline

Imbues the regex_traits object with a copy of a new locale.

Parameters

  __loc | A locale.

Returns
  a copy of the previous locale in use by the regex_traits object.

Note
  Calling imbue with a different locale than the one currently in use invalidates all cached data held by *this.

Definition at line 400 of file regex.h.

## ◆ isctype()

template<typename _Ch_type>

bool std::regex_traits< _Ch_type >::isctype | ( | _Ch_type | __c,
|  | char_class_type | __f ) const

Determines if `c` is a member of an identified class.

Parameters

  __c | a character.
  __f | a class type (as returned from lookup_classname).

Returns
  true if the character `__c` is a member of the classification represented by `__f`, false otherwise.

Exceptions

  std::bad_cast | if the current locale does not have a ctype facet.

Definition at line 393 of file regex.tcc.

References std::use_facet().

## ◆ length()

template<typename _Ch_type>

std::size_t std::regex_traits< _Ch_type >::length | ( | const char_type * | __p | ) |
| inlinestatic

Gives the length of a C-style string starting at `__p`.

Parameters

  __p | a pointer to the start of a character sequence.

Returns
  the number of characters between `*__p` and the first default-initialized value of type `char_type`. In other words, uses the C-string algorithm for determining the length of a sequence of characters.

Definition at line 192 of file regex.h.

## ◆ lookup_classname()

template<typename _Ch_type>
template<typename _Fwd_iter>

regex_traits< _Ch_type >::char_class_type std::regex_traits< _Ch_type >::lookup_classname | ( | _Fwd_iter | __first,
|  | _Fwd_iter | __last,
|  | bool | __icase = false ) const

Maps one or more characters to a named character classification.

Parameters

  __first | beginning of the character sequence.
  __last | one-past-the-end of the character sequence.
  __icase | ignores the case of the classification name.

Returns
  an unspecified value that represents the character classification named by the character sequence designated by the iterator range [__first, __last). If `icase` is true, the returned mask identifies the classification regardless of the case of the characters to be matched (for example, [[:lower:]] is the same as [[:alpha:]]), otherwise a case-dependent classification is returned. The value returned shall be independent of the case of the characters in the character sequence. If the name is not recognized then returns a value that compares equal to 0.

At least the following names (or their wide-character equivalent) are supported.

- d
- w
- s
- alnum
- alpha
- blank
- cntrl
- digit
- graph
- lower
- print
- punct
- space
- upper
- xdigit

Definition at line 295 of file regex.tcc.

References std::use_facet().

## ◆ lookup_collatename()

template<typename _Ch_type>
template<typename _Fwd_iter>

regex_traits< _Ch_type >::string_type std::regex_traits< _Ch_type >::lookup_collatename | ( | _Fwd_iter | __first,
|  | _Fwd_iter | __last ) const

Gets a collation element by name.

Parameters

  __first | beginning of the collation element name.
  __last | one-past-the-end of the collation element name.

Returns
  a sequence of one or more characters that represents the collating element consisting of the character sequence designated by the iterator range [__first, __last). Returns an empty string if the character sequence is not a valid collating element.

Definition at line 264 of file regex.tcc.

References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and std::use_facet().

## ◆ transform()

template<typename _Ch_type>
template<typename _Fwd_iter>

string_type std::regex_traits< _Ch_type >::transform | ( | _Fwd_iter | __first,
|  | _Fwd_iter | __last ) const
| inline

Gets a sort key for a character sequence.

Parameters

  __first | beginning of the character sequence.
  __last | one-past-the-end of the character sequence.

Returns a sort key for the character sequence designated by the iterator range [F1, F2) such that if the character sequence [G1, G2) sorts before the character sequence [H1, H2) then v.transform(G1, G2) < v.transform(H1, H2).

What this really does is provide a more efficient way to compare a string to multiple other strings in locales with fancy collation rules and equivalence classes.

Returns
  a locale-specific sort key equivalent to the input range.

Exceptions

  std::bad_cast | if the current locale does not have a collate facet.

Definition at line 245 of file regex.h.

## ◆ transform_primary()

template<typename _Ch_type>
template<typename _Fwd_iter>

string_type std::regex_traits< _Ch_type >::transform_primary | ( | _Fwd_iter | __first,
|  | _Fwd_iter | __last ) const
| inline

Gets a sort key for a character sequence, independent of case.

Parameters

  __first | beginning of the character sequence.
  __last | one-past-the-end of the character sequence.

Effects: if typeid(use_facet<collate<_Ch_type>>(getloc())) == typeid(collate_byname<_Ch_type>) and the form of the sort key returned by collate_byname<_Ch_type>::transform(__first, __last) is known and can be converted into a primary sort key then returns that key, otherwise returns an empty string.

Todo
  Implement this function correctly.

Definition at line 269 of file regex.h.

## ◆ translate()

template<typename _Ch_type>

char_type std::regex_traits< _Ch_type >::translate | ( | char_type | __c | ) | const
| inline

Performs the identity translation.

Parameters

  __c | A character to the locale-specific character set.

Returns
  __c.

Definition at line 203 of file regex.h.

## ◆ translate_nocase()

template<typename _Ch_type>

char_type std::regex_traits< _Ch_type >::translate_nocase | ( | char_type | __c | ) | const
| inline

Translates a character into a case-insensitive equivalent.

Parameters

  __c | A character to the locale-specific character set.

Returns
  the locale-specific lower-case equivalent of __c.

Exceptions

  std::bad_cast | if the imbued locale does not support the ctype facet.

Definition at line 216 of file regex.h.

## ◆ value()

template<typename _Ch_type>

int std::regex_traits< _Ch_type >::value | ( | _Ch_type | __ch,
|  | int | __radix ) const

Converts a digit to an int.

Parameters

  __ch | a character representing a digit.
  __radix | the radix if the numeric conversion (limited to 8, 10, or 16).

Returns
  the value represented by the digit __ch in base radix if the character __ch is a valid digit in base radix; otherwise returns -1.

Definition at line 407 of file regex.tcc.

References regex_traits(), and std::use_facet().

## Member Data Documentation

## ◆ _M_locale

template<typename _Ch_type>

locale_type std::regex_traits< _Ch_type >::_M_locale
| protected

Definition at line 415 of file regex.h.

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

- regex.h
- regex.tcc