std::regex_traits< _Ch_type >

Section: C Library Functions (3)
Updated: Wed Apr 17 2019
Page Index
 

NAME

std::regex_traits< _Ch_type > - Describes aspects of a regular expression.

 

SYNOPSIS


 

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 ()
Constructs a default traits object.
locale_type getloc () const
Gets a copy of the current locale in use by the regex_traits object.
locale_type imbue (locale_type __loc)
Imbues the regex_traits object with a copy of a new locale.
bool isctype (_Ch_type __c, char_class_type __f) const
Determines if c is a member of an identified class.
template<typename _Fwd_iter > char_class_type lookup_classname (_Fwd_iter __first, _Fwd_iter __last, bool __icase=false) const
Maps one or more characters to a named character classification.
template<typename _Fwd_iter > string_type lookup_collatename (_Fwd_iter __first, _Fwd_iter __last) const
Gets a collation element by name.
template<typename _Fwd_iter > string_type transform (_Fwd_iter __first, _Fwd_iter __last) const
Gets a sort key for a character sequence.
template<typename _Fwd_iter > string_type transform_primary (_Fwd_iter __first, _Fwd_iter __last) const
Gets a sort key for a character sequence, independent of case.
char_type translate (char_type __c) const
Performs the identity translation.
char_type translate_nocase (char_type __c) const
Translates a character into a case-insensitive equivalent.
int value (_Ch_type __ch, int __radix) const
Converts a digit to an int.  

Static Public Member Functions


static std::size_t length (const char_type *__p)
Gives the length of a C-style string starting at __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.

Definition at line 81 of file regex.h.  

Constructor & Destructor Documentation

 

template<typename _Ch_type> std::regex_traits< _Ch_type >::regex_traits () [inline]

Constructs a default traits object.

Definition at line 158 of file regex.h.  

Member Function Documentation

 

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

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

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 327 of file regex.tcc.  

template<typename _Ch_type> static std::size_t std::regex_traits< _Ch_type >::length (const char_type * __p) [inline], [static]

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

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 283 of file regex.tcc.  

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 127 of file regex.tcc.  

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

Referenced by std::regex_traits< _CharType >::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> >) == 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 248 of file regex.h.  

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

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

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 341 of file regex.tcc.

 

Author

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


 

Index

NAME
SYNOPSIS
Public Types
Public Member Functions
Static Public Member Functions
Protected Attributes
Detailed Description
template<typename _Ch_type>
Constructor & Destructor Documentation
template<typename _Ch_type> std::regex_traits< _Ch_type >::regex_traits () [inline]
Member Function Documentation
template<typename _Ch_type> locale_type std::regex_traits< _Ch_type >::getloc () const [inline]
template<typename _Ch_type> locale_type std::regex_traits< _Ch_type >::imbue (locale_type __loc) [inline]
template<typename _Ch_type> bool std::regex_traits< _Ch_type >::isctype (_Ch_type __c, char_class_type __f) const
template<typename _Ch_type> static std::size_t std::regex_traits< _Ch_type >::length (const char_type * __p) [inline], [static]
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
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
template<typename _Ch_type> template<typename _Fwd_iter > string_type std::regex_traits< _Ch_type >::transform (_Fwd_iter __first, _Fwd_iter __last) const [inline]
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]
template<typename _Ch_type> char_type std::regex_traits< _Ch_type >::translate (char_type __c) const [inline]
template<typename _Ch_type> char_type std::regex_traits< _Ch_type >::translate_nocase (char_type __c) const [inline]
template<typename _Ch_type> int std::regex_traits< _Ch_type >::value (_Ch_type __ch, int __radix) const
Author