STD::__DETAIL::_EXECUTOR(3cxx)

πŸ’– NAME πŸ’–

std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode > β€” okay so bestie, this is the little engine that takes a regex and an input string and does the matching. That's it, that's the whole job. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

She lives in <regex>, as all the good ones do:

#include <regex>

πŸŽ€ Public Types πŸŽ€

  • typedef iterator_traits< _BiIter >::value_type _CharT β€” the character type, pulled straight out of the iterator's traits. iykyk πŸ’…
  • typedef _TraitsT::char_class_type _ClassT β€” the char-class type, borrowed from _TraitsT.
  • typedef regex_constants::match_flag_type _FlagT β€” the flag type, aka regex_constants::match_flag_type, no cap.
  • typedef _NFA< _TraitsT > _NFAT β€” the NFA type, _NFA< _TraitsT >, iconic.
  • typedef basic_regex< _CharT, _TraitsT > _RegexT β€” the regex type, basic_regex< _CharT, _TraitsT >.
  • typedef ::vector< sub_match< _BiIter >, _Alloc > _ResultsVec β€” the results container, ::vector< sub_match< _BiIter >, _Alloc >. it's giving storage πŸ’–

🌸 Public Member Functions 🌸

  • _Executor (_BiIter __begin, _BiIter __end, _ResultsVec &__results, const _RegexT &__re, _FlagT __flags) β€” the constructor, main character energy fr. Takes your begin, your end, your results by reference, the regex by const reference, and the flags. that's the whole squad 🫢
  • bool _M_match () β€” does the match thing, returns bool.
  • bool _M_search () β€” does the search thing, returns bool.
  • bool _M_search_from_first () β€” searches from the first, returns bool. literally in the name ✨

⭐ Public Attributes ⭐

  • _BiIter _M_begin β€” where it all starts.
  • _ResultsVec _M_cur_results β€” the current results, live and in colour.
  • _BiIter _M_current β€” where we're at right now.
  • const _BiIter _M_end β€” the end, and it's const, so don't even try it πŸ’€
  • _FlagT _M_flags β€” the flags, held tight.
  • bool _M_has_sol β€” does it have a start-of-line? bool says maybe.
  • const _NFAT & _M_nfa β€” const reference to the NFA. obsessed.
  • const _RegexT & _M_re β€” const reference to the regex itself.
  • ::vector< pair< _BiIter, int > > _M_rep_count β€” the repeat counters, a whole vector of pair< _BiIter, int >. she's keeping count, periodt πŸ”₯
  • _ResultsVec & _M_results β€” reference to the results vec.
  • _State_info< __search_mode, _ResultsVec > _M_states β€” the state info, _State_info< __search_mode, _ResultsVec >. this is the one, okay? πŸ‘‘

πŸ‘‘ Detailed Description πŸ‘‘

Bestie. Behold the actual declaration, verbatim, because I would never mess with your template params:

template<typename _BiIter, typename _Alloc, typename _TraitsT, bool
    __dfs_mode>
    class std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode
    >"Takes a regex and an input string and does the matching.

(the quote marks in there are literally how the source gives it, I'm not touching them πŸ™ˆ)

So β€” _Executor has two modes: DFS mode and BFS mode, and which one you get is controlled by the template parameter __dfs_mode. Two vibes, one class. slay πŸ’…


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for libstdc++ from the source code. Not a human, just a robot doing its little thing πŸ€–πŸ’–


And that's the whole page, bestie! πŸŽ€ This little gem is from libstdc++ β€” the footer's just the truncated header again with no real date attached, so consider this your cute sign-off: go forth and match some regexes, mwah πŸ’‹πŸ¦‹

πŸ“¦ where this page comes from