std::regex_traits

From cppreference.com
Defined in header <regex>
template< class CharT >
class regex_traits;
(since C++11)

The type trait template regex_traits supplies std::basic_regex with the set of types and functions necessary to operate on the type CharT.

Since many of regex operations are locale-sensitive (when std::regex_constants::collate flag is set), the regex_traits class typically holds an instance of a std::locale as a private member.

[edit] Standard specializations

Two specializations of std::regex_traits are defined by the standard library:

std::regex_traits<char>
std::regex_traits<wchar_t>

These specializations make it possible to use std::basic_regex<char> (aka std::regex) and std::basic_regex<wchar_t> (aka std::wregex), but in order to use, for example, std::basic_regex<char32_t>, user-provided specializtion std::regex_traits<char32_t> needs to be defined.

[edit] Member types

Type Definition
char_type CharT
string_type std::basic_string<CharT>
locale_type The locale used for localized behavior in the regular expression. Must be CopyConstructible
char_class_type Represents a character classification and is capable of holding an implementation specific set returned by lookup_classname. Must be a BitmaskType.

[edit] Member functions

constructs the regex_traits object
(public member function)
[static]
calculates the length of a null-terminated character string
(public static member function)
determines the equivalence key for a character
(public member function)
determines the case-insensitive equivalence key for a character
(public member function)
determines the sort key for the given string, used to provide collation order
(public member function)
determines the primary sort key for the character sequence, used to determine equivalence class
(public member function)
gets a collation element by name
(public member function)
gets a character class by name
(public member function)
indicates membership in a localized character class
(public member function)
translates the character representing a numeric digit into an integral value
(public member function)
sets the locale
(public member function)
gets the locale
(public member function)