STD::REGEX_TRAITS(3)

✨ std::regex_traits< _Ch_type > ✨

hi bestie πŸ’– welcome to the Library Functions Manual corner of the universe, section (3), where we talk about std::regex_traits< _Ch_type > β€” the class that Describes aspects of a regular expression. no cap.


🌸 NAME 🌸

std::regex_traits< _Ch_type > β€” Describes aspects of a regular expression.


πŸŽ€ SYNOPSIS πŸŽ€

#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 () β€” Constructs a default traits object. the humble beginning, the origin story fr.
  • 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. glow-up time ✨
  • bool isctype (_Ch_type __c, char_class_type __f) const β€” Determines if c is a member of an identified class. is it in the club or not πŸ’…
  • 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. it literally just hands you back what you gave it 😭 iconic honestly.
  • 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.

Since C++11


πŸ’– Constructor & Destructor Documentation πŸ’–

template<typename _Ch_type> std::regex_traits< _Ch_type >::regex_traits ()

[inline]

Constructs a default traits object.

Referenced by value().

🧚 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.


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. girl, the cache is GONE. every time. πŸ’€

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.

References std::use_facet().

template<typename _Ch_type> 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.


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
References std::use_facet().

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.

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

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. lowkey genius behavior 🧠✨

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.


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. bestie it is NOT done yet, and the docs are just saying it out loud 😭


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.


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.


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.

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

🌸 Author 🌸

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


okay that's the whole page, bestie 🫢 this was libstdc++ doing the most, section (3), std::regex_traits< _Ch_type >(3) β€” go forth and trait responsibly πŸ’…βœ¨

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms