std::__detail(3cxx)

🌸 NAME 🌸

hey bestie, welcome to std::__detail in the 3cxx manual πŸ’… this is the backstage zone: implementation details not part of the namespace std interface. literally the β€œdo not cite me in public” part of the library, no cap 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

✨ Classes ✨

  • struct _BracketMatcher β€” matches a character range (bracket expression) πŸŽ€
  • class _Compiler β€” builds an NFA from an input iterator range.
  • class _Executor β€” takes a regex and an input string and does the matching.
  • struct _List_node_base β€” the common part of a node in the list.
  • struct _List_node_header β€” the list node header.
  • struct _Quoted_string β€” struct for delimited strings.
  • class _Scanner β€” scans an input range for regex tokens.
  • class _StateSeq β€” describes a sequence of one or more _State, its current start and end(s). This structure contains fragments of an NFA during construction. iconic regex-construction behavior ✨

πŸŽ€ Typedefs πŸŽ€

  • __bare_timed_wait β€” using __bare_timed_wait = __timed_waiter< std::false_type >
  • __bare_wait β€” using __bare_wait = __waiter< std::false_type >
  • __clamp_iter_cat β€” template<typename _Cat , typename _Limit , typename _Otherwise = _Cat> using __clamp_iter_cat = __conditional_t< derived_from< _Cat, _Limit >, _Limit, _Otherwise >
  • __cmp3way_res_t β€” template<typename _Tp , typename _Up > using __cmp3way_res_t = decltype(std::declval< _Tp >()<=> std::declval< _Up >())
  • __enters_timed_wait β€” using __enters_timed_wait = __timed_waiter< std::true_type >
  • __enters_wait β€” using __enters_wait = __waiter< std::true_type >
  • __platform_wait_t β€” using __platform_wait_t = unsigned int
  • __unsigned_least_t β€” template<typename _Tp > using __unsigned_least_t = typename __to_chars_unsigned_type< _Tp >::type
  • __wait_clock_t β€” using __wait_clock_t = chrono::steady_clock
  • _Matcher β€” template<typename _CharT > using _Matcher = std::function< bool(_CharT)>
  • _StateIdT β€” typedef long _StateIdT

πŸ”₯ Enumerations πŸ”₯

  • _Opcode β€” operation codes that define the type of transitions within the base NFA that represents the regular expression πŸ‘‘
enum _Opcode : int { _S_opcode_unknown, _S_opcode_alternative,
           _S_opcode_repeat, _S_opcode_backref, _S_opcode_line_begin_assertion,
           _S_opcode_line_end_assertion, _S_opcode_word_boundary,
           _S_opcode_subexpr_lookahead, _S_opcode_subexpr_begin,
           _S_opcode_subexpr_end, _S_opcode_dummy, _S_opcode_match,
           _S_opcode_accept }
  • enum class _RegexExecutorPolicy : int β€” { _S_auto, _S_alternate }

🌈 Functions 🌈

  • __abs_r β€” template<typename _Res , typename _Tp > constexpr _Res __abs_r (_Tp __val)
  • __abs_r (deleted bool version) β€” template<typename > void __abs_r (bool)=delete
  • __atomic_compare β€” template<typename _Tp > bool __atomic_compare (const _Tp &__a, const _Tp &__b)
  • __atomic_spin β€” template<typename _Pred , typename _Spin = __default_spin_policy> bool __atomic_spin (_Pred &__pred, _Spin __spin=_Spin{ }) noexcept
  • __char_traits_cmp_cat β€” template<typename _ChTraits > constexpr auto __char_traits_cmp_cat (int __cmp) noexcept
  • __common_cmp_cat β€” template<typename... _Ts> constexpr auto __common_cmp_cat ()
  • __cond_wait_until β€” template<typename _Clock , typename _Dur > bool __cond_wait_until (__condvar &__cv, mutex &__mx, const chrono::time_point< _Clock, _Dur > &__atime)
  • __cond_wait_until_impl β€” template<typename _Clock , typename _Dur > bool __cond_wait_until_impl (__condvar &__cv, mutex &__mx, const chrono::time_point< _Clock, _Dur > &__atime)
  • __erase_nodes_if β€” template<typename _Container , typename _UnsafeContainer , typename _Predicate > _Container::size_type __erase_nodes_if (_Container &__cont, _UnsafeContainer &__ucont, _Predicate __pred)
  • __extract_params β€” template<typename _ValT , typename _CharT , typename _Traits > basic_istream< _CharT, _Traits > & __extract_params (basic_istream< _CharT, _Traits > &__is, vector< _ValT > &__vals, size_t __n)
  • __from_chars_alnum β€” template<bool _DecOnly, typename _Tp > constexpr bool __from_chars_alnum (const char *&__first, const char *__last, _Tp &__val, int __base) β€” this is the std::from_chars implementation for integers in any base. If _DecOnly is true, then we may assume __base is at most 10 πŸ’–
  • __from_chars_alnum_to_val β€” template<bool _DecOnly = false> constexpr unsigned char __from_chars_alnum_to_val (unsigned char __c)
  • __from_chars_pow2_base β€” template<bool _DecOnly, typename _Tp > constexpr bool __from_chars_pow2_base (const char *&__first, const char *__last, _Tp &__val, int __base) β€” this is the std::from_chars implementation for integers in a power-of-two base. If _DecOnly is true, then we may assume __base is at most 8 ✨
  • __gcd β€” template<typename _Tp > constexpr _Tp __gcd (_Tp __m, _Tp __n)
  • __p1_representable_as_double β€” template<typename _Tp > constexpr bool __p1_representable_as_double (_Tp __x) noexcept
  • __raise_and_add β€” template<typename _Tp > constexpr bool __raise_and_add (_Tp &__val, int __base, unsigned char __c)
  • __regex_algo_impl β€” template<typename _BiIter , typename _Alloc , typename _CharT , typename _TraitsT > bool __regex_algo_impl (_BiIter __s, _BiIter __e, match_results< _BiIter, _Alloc > &__m, const basic_regex< _CharT, _TraitsT > &__re, regex_constants::match_flag_type __flags, _RegexExecutorPolicy __policy, bool __match_mode)
  • __representable_as_double β€” template<typename _Tp > constexpr bool __representable_as_double (_Tp __x) noexcept
  • __return_temporary_buffer β€” template<typename _Tp > void __return_temporary_buffer (_Tp *__p, size_t __len)
  • __thread_relax β€” void __thread_relax () noexcept
  • __thread_yield β€” void __thread_yield () noexcept
  • __to_chars β€” template<typename _Tp > constexpr to_chars_result __to_chars (char *__first, char *__last, _Tp __val, int __base) noexcept
  • __to_chars_10 β€” template<typename _Tp > constexpr to_chars_result __to_chars_10 (char *__first, char *__last, _Tp __val) noexcept
  • __to_chars_10_impl β€” template<typename _Tp > constexpr void __to_chars_10_impl (char *__first, unsigned __len, _Tp __val) noexcept
  • __to_chars_16 β€” template<typename _Tp > constexpr to_chars_result __to_chars_16 (char *__first, char *__last, _Tp __val) noexcept
  • __to_chars_2 β€” template<typename _Tp > constexpr to_chars_result __to_chars_2 (char *__first, char *__last, _Tp __val) noexcept
  • __to_chars_8 β€” template<typename _Tp > constexpr to_chars_result __to_chars_8 (char *__first, char *__last, _Tp __val) noexcept
  • __to_chars_len β€” template<typename _Tp > constexpr unsigned __to_chars_len (_Tp __value, int __base) noexcept
  • __to_chars_len_2 β€” template<typename _Tp > constexpr unsigned __to_chars_len_2 (_Tp __value) noexcept
  • __to_wait_clock (first overload) β€” template<typename _Dur > __wait_clock_t::time_point __to_wait_clock (const chrono::time_point< __wait_clock_t, _Dur > &__atime) noexcept
  • __to_wait_clock (second overload) β€” template<typename _Clock , typename _Dur > __wait_clock_t::time_point __to_wait_clock (const chrono::time_point< _Clock, _Dur > &__atime) noexcept
  • operator<< (quoted string inserter) β€” template<typename _CharT , typename _Traits , typename _String > std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const _Quoted_string< _String, _CharT > &__str) β€” inserter for quoted strings πŸŽ€
  • operator<< (const char pointer quoted string inserter) β€” template<typename _CharT , typename _Traits > std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const _Quoted_string< const _CharT *, _CharT > &__str) β€” inserter for quoted strings πŸŽ€
  • operator>> (quoted string extractor) β€” template<typename _CharT , typename _Traits , typename _Alloc > std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, const _Quoted_string< basic_string< _CharT, _Traits, _Alloc > &, _CharT > &__str) β€” extractor for delimited strings. The left and right delimiters can be different πŸ’…

🫢 Variables 🫢

  • __atomic_spin_count β€” constexpr auto __atomic_spin_count
  • __atomic_spin_count_relax β€” constexpr auto __atomic_spin_count_relax
  • __cmp_cat_id β€” template<typename _Tp > constexpr unsigned __cmp_cat_id
  • __cmp_cat_id< partial_ordering > β€” template<> constexpr unsigned __cmp_cat_id< partial_ordering >
  • __cmp_cat_id< strong_ordering > β€” template<> constexpr unsigned __cmp_cat_id< strong_ordering >
  • __cmp_cat_id< weak_ordering > β€” template<> constexpr unsigned __cmp_cat_id< weak_ordering >
  • __platform_wait_alignment β€” constexpr size_t __platform_wait_alignment
  • _S_invalid_state_id β€” constexpr _StateIdT _S_invalid_state_id

πŸ’œ Detailed Description πŸ’œ

Implementation details not part of the namespace std interface. that’s the whole mood, bestie β€” it’s giving β€œbackstage pass only, public API said no” πŸ¦‹


🌟 Function Documentation 🌟

πŸ’– std::__detail::__from_chars_alnum πŸ’–

template<bool _DecOnly, typename _Tp > constexpr bool
std::__detail::__from_chars_alnum (const char *& __first, const char *
__last, _Tp & __val, int __base) [constexpr]

this is the std::from_chars implementation for integers in any base. If _DecOnly is true, then we may assume __base is at most 10 ✨

πŸ’– std::__detail::__from_chars_pow2_base πŸ’–

template<bool _DecOnly, typename _Tp > constexpr bool
std::__detail::__from_chars_pow2_base (const char *& __first, const char
* __last, _Tp & __val, int __base) [constexpr]

this is the std::from_chars implementation for integers in a power-of-two base. If _DecOnly is true, then we may assume __base is at most 8 🌸

πŸ’– std::__detail::operator<< (quoted string inserter) πŸ’–

template<typename _CharT , typename _Traits , typename _String >
    std::basic_ostream< _CharT, _Traits > & std::__detail::operator<<
    (std::basic_ostream< _CharT, _Traits > & __os, const _Quoted_string<
    _String, _CharT > & __str)

inserter for quoted strings πŸŽ€

πŸ’– std::__detail::operator<< (const char pointer quoted string inserter) πŸ’–

template<typename _CharT , typename _Traits > std::basic_ostream< _CharT,
    _Traits > & std::__detail::operator<< (std::basic_ostream< _CharT,
    _Traits > & __os, const _Quoted_string< const _CharT *, _CharT > &
    __str)

inserter for quoted strings πŸŽ€

πŸ’– std::__detail::operator>> (quoted string extractor) πŸ’–

template<typename _CharT , typename _Traits , typename _Alloc >
    std::basic_istream< _CharT, _Traits > & std::__detail::operator>>
    (std::basic_istream< _CharT, _Traits > & __is, const _Quoted_string<
    basic_string< _CharT, _Traits, _Alloc > &, _CharT > & __str)

extractor for delimited strings. The left and right delimiters can be different πŸ’…

References:

  • std::basic_ios< _CharT, _Traits >::clear()
  • std::ios_base::flags()
  • std::basic_ios< _CharT, _Traits >::good()
  • std::ios_base::setf()
  • std::ios_base::skipws
  • std::basic_istream< _CharT, _Traits >::unget()

πŸ’… Author πŸ’…

Generated automatically by Doxygen for libstdc++ from the source code. slay, automated documentation behavior πŸ‘‘


okay that’s the whole page, bestie β€” footer source/version vibe is libstdc++, the manual name is std::__detail(3cxx), and ngl there’s no date printed on this footer. mwah πŸ’–

πŸ“¦ where this page comes from