Base and Implementation Classes
Regular Expressions
Collaboration diagram for Base and Implementation Classes:

## Classes

struct | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >
class | std::__detail::_Compiler< _TraitsT >
class | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >
class | std::__detail::_Scanner< _CharT >
class | std::__detail::_StateSeq< _TraitsT >

## Typedefs

template<typename _Iter , typename _TraitsT >
using | std::__detail::__disable_if_contiguous_normal_iter = typename enable_if< !__is_contiguous_normal_iter< _Iter >::value, std::shared_ptr< const _NFA< _TraitsT > > >::type
template<typename _Iter , typename _TraitsT >
using | std::__detail::__enable_if_contiguous_normal_iter = typename enable_if< __is_contiguous_normal_iter< _Iter >::value, std::shared_ptr< const _NFA< _TraitsT > > >::type
typedef _RegexTranslatorBase< _TraitsT, __icase, __collate > | std::__detail::_RegexTranslator< _TraitsT, __icase, __collate >::_Base
typedef _RegexTranslatorBase< _TraitsT, __icase, false > | std::__detail::_RegexTranslator< _TraitsT, __icase, false >::_Base
typedef _RegexTranslatorBase< std::regex_traits< _CharType >, true, true > | std::__detail::_RegexTranslator< std::regex_traits< _CharType >, true, true >::_Base
typedef _TraitsT::char_type | std::__detail::_NFA< _TraitsT >::_Char_type
typedef _TraitsT::char_class_type | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_CharClassT
typedef iterator_traits< _BiIter >::value_type | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_CharT
typedef _TraitsT::char_type | std::__detail::_Compiler< _TraitsT >::_CharT
typedef _TraitsT::char_type | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_CharT
typedef _Base::_CharT | std::__detail::_RegexTranslator< _TraitsT, __icase, false >::_CharT
typedef _Base::_CharT | std::__detail::_RegexTranslator< std::regex_traits< _CharType >, true, true >::_CharT
typedef _TraitsT::char_type | std::__detail::_RegexTranslator< _TraitsT, false, false >::_CharT
typedef _TransT::_CharT | std::__detail::_AnyMatcher< _TraitsT, false, __icase, __collate >::_CharT
typedef _TransT::_CharT | std::__detail::_AnyMatcher< _TraitsT, true, __icase, __collate >::_CharT
typedef _TransT::_CharT | std::__detail::_CharMatcher< _TraitsT, __icase, __collate >::_CharT
typedef _TransT::_CharT | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_CharT
typedef _TraitsT::char_class_type | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_ClassT
typedef regex_constants::match_flag_type | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_FlagT
typedef regex_constants::syntax_option_type | std::__detail::_Compiler< _TraitsT >::_FlagT
typedef regex_constants::syntax_option_type | std::__detail::_ScannerBase::_FlagT
typedef regex_constants::syntax_option_type | std::__detail::_NFA_base::_FlagT
typedef regex_constants::syntax_option_type | std::__detail::_Scanner< _CharT >::_FlagT
template<typename _CharT >
using | std::__detail::_Matcher = std::function< bool(_CharT)>
typedef _Matcher< _Char_type > | std::__detail::_State< _Char_type >::_MatcherT
typedef _Matcher< _Char_type > | std::__detail::_NFA< _TraitsT >::_MatcherT
typedef _NFA< _TraitsT > | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_NFAT
typedef basic_regex< _CharT, _TraitsT > | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_RegexT
typedef _NFA< _TraitsT > | std::__detail::_Compiler< _TraitsT >::_RegexT
typedef _NFA< _TraitsT > | std::__detail::_StateSeq< _TraitsT >::_RegexT
typedef std::vector< sub_match< _BiIter >, _Alloc > | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_ResultsVec
typedef size_t | std::__detail::_NFA_base::_SizeT
typedef long | std::__detail::_StateIdT
typedef _State< _Char_type > | std::__detail::_NFA< _TraitsT >::_StateT
typedef std::basic_string< _CharT > | std::__detail::_Scanner< _CharT >::_StringT
typedef _TraitsT::string_type | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_StringT
typedef _TraitsT::string_type | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_StringT
typedef _StringT | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_StrTransT
typedef _CharT | std::__detail::_RegexTranslator< _TraitsT, __icase, false >::_StrTransT
typedef _Base::_StrTransT | std::__detail::_RegexTranslator< std::regex_traits< _CharType >, true, true >::_StrTransT
typedef _CharT | std::__detail::_RegexTranslator< _TraitsT, false, false >::_StrTransT
typedef _TransT::_StrTransT | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_StrTransT
typedef _RegexTranslator< _TraitsT, __icase, __collate > | std::__detail::_AnyMatcher< _TraitsT, false, __icase, __collate >::_TransT
typedef _RegexTranslator< _TraitsT, __icase, __collate > | std::__detail::_AnyMatcher< _TraitsT, true, __icase, __collate >::_TransT
typedef _RegexTranslator< _TraitsT, __icase, __collate > | std::__detail::_CharMatcher< _TraitsT, __icase, __collate >::_TransT
typedef _RegexTranslator< _TraitsT, __icase, __collate > | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_TransT

## Enumerations

enum | std::__detail::_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 | _StateT { _S_state_normal, _S_state_in_brace, _S_state_in_bracket }

enum

std::__detail::_ScannerBase::_TokenT : unsigned {
_S_token_anychar, _S_token_ord_char, _S_token_oct_num, _S_token_hex_num,
_S_token_backref, _S_token_subexpr_begin, _S_token_subexpr_no_group_begin, _S_token_subexpr_lookahead_begin,
_S_token_subexpr_end, _S_token_bracket_begin, _S_token_bracket_neg_begin, _S_token_bracket_end,
_S_token_interval_begin, _S_token_interval_end, _S_token_quoted_class, _S_token_char_class_name,
_S_token_collsymbol, _S_token_equiv_class_name, _S_token_opt, _S_token_or,
_S_token_closure0, _S_token_closure1, _S_token_line_begin, _S_token_line_end,
_S_token_word_bound, _S_token_comma, _S_token_dup_count, _S_token_eof,
_S_token_bracket_dash, _S_token_unknown
}

## Functions

| std::__detail::_AnyMatcher< _TraitsT, false, __icase, __collate >::_AnyMatcher (const _TraitsT &__traits)
| std::__detail::_AnyMatcher< _TraitsT, true, __icase, __collate >::_AnyMatcher (const _TraitsT &__traits)
| std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_BracketMatcher (bool __is_non_matching, const _TraitsT &__traits)
| std::__detail::_CharMatcher< _TraitsT, __icase, __collate >::_CharMatcher (_CharT __ch, const _TraitsT &__traits)
| std::__detail::_Compiler< _TraitsT >::_Compiler (_IterT __b, _IterT __e, const typename _TraitsT::locale_type &__traits, _FlagT __flags)
| std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_Executor (_BiIter __begin, _BiIter __end, _ResultsVec &__results, const _RegexT &__re, _FlagT __flags)
| std::__detail::_NFA< _TraitsT >::_NFA (_NFA &&)=default
| std::__detail::_NFA< _TraitsT >::_NFA (const _NFA &)=delete
| std::__detail::_NFA< _TraitsT >::_NFA (const typename _TraitsT::locale_type &__loc, _FlagT __flags)
| std::__detail::_NFA_base::_NFA_base (_FlagT __f)
| std::__detail::_NFA_base::_NFA_base (_NFA_base &&)=default
| std::__detail::_RegexTranslator< _TraitsT, false, false >::_RegexTranslator (const _TraitsT &)
| std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_RegexTranslatorBase (const _TraitsT &__traits)
| std::__detail::_Scanner< _CharT >::_Scanner (_IterT __begin, _IterT __end, _FlagT __flags, std::locale __loc)
| std::__detail::_ScannerBase::_ScannerBase (_FlagT __flags)
| std::__detail::_State< _Char_type >::_State (_Opcode __opcode)
| std::__detail::_State< _Char_type >::_State (_State &&__rhs)
| std::__detail::_State< _Char_type >::_State (const _State &__rhs)
| std::__detail::_State_base::_State_base (_Opcode __opcode)
| std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __bfs, _ResultsVec >::_State_info (_StateIdT __start, size_t __n)
| std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __dfs, _ResultsVec >::_State_info (_StateIdT __start, size_t)
| std::__detail::_StateSeq< _TraitsT >::_StateSeq (_RegexT &__nfa, _StateIdT __s)
| std::__detail::_StateSeq< _TraitsT >::_StateSeq (_RegexT &__nfa, _StateIdT __s, _StateIdT __end)
template<typename _FwdIter , typename _TraitsT >
__enable_if_contiguous_normal_iter< _FwdIter, _TraitsT > | std::__detail::__compile_nfa (_FwdIter __first, _FwdIter __last, const typename _TraitsT::locale_type &__loc, regex_constants::syntax_option_type __flags)
void | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_M_add_char (_CharT __c)
void | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_M_add_character_class (const _StringT &__s, bool __neg)
_StringT | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_M_add_collate_element (const _StringT &__s)
void | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_M_add_equivalence_class (const _StringT &__s)
void | std::__detail::_Scanner< _CharT >::_M_advance ()
void | std::__detail::_StateSeq< _TraitsT >::_M_append (_StateIdT __id)
void | std::__detail::_StateSeq< _TraitsT >::_M_append (const _StateSeq &__s)
bool | std::__detail::_AnyMatcher< _TraitsT, true, __icase, __collate >::_M_apply (_CharT __ch, false_type) const
bool | std::__detail::_AnyMatcher< _TraitsT, true, __icase, __collate >::_M_apply (_CharT __ch, true_type) const
_StateSeq | std::__detail::_StateSeq< _TraitsT >::_M_clone ()
void | std::__detail::_NFA< _TraitsT >::_M_eliminate_dummy ()
const char * | std::__detail::_ScannerBase::_M_find_escape (char __c)
_MatcherT & | std::__detail::_State< _Char_type >::_M_get_matcher ()
const _MatcherT & | std::__detail::_State< _Char_type >::_M_get_matcher () const
shared_ptr< const _RegexT > | std::__detail::_Compiler< _TraitsT >::_M_get_nfa ()
_BiIter * | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __bfs, _ResultsVec >::_M_get_sol_pos ()
_BiIter * | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __dfs, _ResultsVec >::_M_get_sol_pos ()
_TokenT | std::__detail::_Scanner< _CharT >::_M_get_token () const
const _StringT & | std::__detail::_Scanner< _CharT >::_M_get_value () const
bool | std::__detail::_State_base::_M_has_alt ()
bool | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_M_in_range_icase (_CharT __first, _CharT __last, _CharT __ch) const
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_accept ()
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_alt (_StateIdT __next, _StateIdT __alt, bool __neg __attribute__((__unused__)))
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_backref (size_t __index)
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_dummy ()
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_line_begin ()
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_line_end ()
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_lookahead (_StateIdT __alt, bool __neg)
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_matcher (_MatcherT __m)
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_repeat (_StateIdT __next, _StateIdT __alt, bool __neg)
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_state (_StateT __s)
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_subexpr_begin ()
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_subexpr_end ()
_StateIdT | std::__detail::_NFA< _TraitsT >::_M_insert_word_bound (bool __neg)
bool | std::__detail::_ScannerBase::_M_is_awk () const
bool | std::__detail::_ScannerBase::_M_is_basic () const
bool | std::__detail::_ScannerBase::_M_is_ecma () const
bool | std::__detail::_ScannerBase::_M_is_extended () const
bool | std::__detail::_ScannerBase::_M_is_grep () const
void | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_M_make_range (_CharT __l, _CharT __r)
bool | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_match ()
bool | std::__detail::_RegexTranslator< _TraitsT, __icase, false >::_M_match_range (_CharT __first, _CharT __last, _CharT __ch) const
bool | std::__detail::_RegexTranslator< _TraitsT, false, false >::_M_match_range (_CharT __first, _CharT __last, _CharT __ch) const
bool | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_M_match_range (const _StrTransT &__first, const _StrTransT &__last, const _StrTransT &__s) const
bool | std::__detail::_RegexTranslator< std::regex_traits< _CharType >, true, true >::_M_match_range (const _StrTransT &__first, const _StrTransT &__last, const _StrTransT &__str) const
bool | std::__detail::_State< _Char_type >::_M_matches (_Char_type __char) const
_Opcode | std::__detail::_State< _Char_type >::_M_opcode () const
_FlagT | std::__detail::_NFA_base::_M_options () const
void | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __bfs, _ResultsVec >::_M_queue (_StateIdT __i, const _ResultsVec &__res)
void | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __dfs, _ResultsVec >::_M_queue (_StateIdT, const _ResultsVec &)
void | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::_M_ready ()
bool | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_search ()
bool | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_search_from_first ()
_StateIdT | std::__detail::_NFA_base::_M_start () const
_SizeT | std::__detail::_NFA_base::_M_sub_count () const
_StrTransT | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_M_transform (_CharT __ch) const
_StrTransT | std::__detail::_RegexTranslator< _TraitsT, __icase, false >::_M_transform (_CharT __ch) const
_StrTransT | std::__detail::_RegexTranslator< _TraitsT, false, false >::_M_transform (_CharT __ch) const
_CharT | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_M_translate (_CharT __ch) const
_CharT | std::__detail::_RegexTranslator< _TraitsT, false, false >::_M_translate (_CharT __ch) const
bool | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __bfs, _ResultsVec >::_M_visited (_StateIdT __i)
bool | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __dfs, _ResultsVec >::_M_visited (_StateIdT) const
bool | std::__detail::_AnyMatcher< _TraitsT, false, __icase, __collate >::operator() (_CharT __ch) const
bool | std::__detail::_AnyMatcher< _TraitsT, true, __icase, __collate >::operator() (_CharT __ch) const
bool | std::__detail::_CharMatcher< _TraitsT, __icase, __collate >::operator() (_CharT __ch) const
bool | std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >::operator() (_CharT __ch) const
_State & | std::__detail::_State< _Char_type >::operator= (const _State &)=delete

## Variables

union {
struct {
_StateIdT _M_alt
bool _M_neg
} |
size_t _M_backref_index
__gnu_cxx::__aligned_membuf< _Matcher< char > > _M_matcher_storage
size_t _M_subexpr
}; |
struct {
_StateIdT _M_alt
bool _M_neg
} |
const typedef std::ctype< _CharT > | std::__detail::_Scanner< _CharT >::_CtypeT
const typedef _CharT * | std::__detail::_Compiler< _TraitsT >::_IterT
const typedef _CharT * | std::__detail::_Scanner< _CharT >::_IterT
_StateIdT std::__detail::_State_base::::_M_alt
bool | std::__detail::_ScannerBase::_M_at_bracket_start
const std::pair< char, char > | std::__detail::_ScannerBase::_M_awk_escape_tbl [11]
size_t std::__detail::_State_base::_M_backref_index
const char * | std::__detail::_ScannerBase::_M_basic_spec_char
_BiIter | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_begin
_CharT | std::__detail::_CharMatcher< _TraitsT, __icase, __collate >::_M_ch
_ResultsVec | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_cur_results
_BiIter | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_current
const std::pair< char, char > | std::__detail::_ScannerBase::_M_ecma_escape_tbl [8]
const char * | std::__detail::_ScannerBase::_M_ecma_spec_char
const _BiIter | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_end
_StateIdT | std::__detail::_StateSeq< _TraitsT >::_M_end
const std::pair< char, char > * | std::__detail::_ScannerBase::_M_escape_tbl
const char * | std::__detail::_ScannerBase::_M_extended_spec_char
_FlagT | std::__detail::_ScannerBase::_M_flags
_FlagT | std::__detail::_NFA_base::_M_flags
_FlagT | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_flags
bool | std::__detail::_NFA_base::_M_has_backref
bool | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_has_sol
vector< pair< _StateIdT, _ResultsVec > > | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __bfs, _ResultsVec >::_M_match_queue
__gnu_cxx::__aligned_membuf< _Matcher< char > > std::__detail::_State_base::_M_matcher_storage
bool std::__detail::_State_base::::_M_neg
_StateIdT | std::__detail::_State_base::_M_next
const _NFAT & | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_nfa
_RegexT & | std::__detail::_StateSeq< _TraitsT >::_M_nfa
_Opcode | std::__detail::_State_base::_M_opcode
std::vector< size_t > | std::__detail::_NFA_base::_M_paren_stack
const _RegexT & | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_re
vector< pair< _BiIter, int > > | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_rep_count
_ResultsVec & | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_results
_BiIter | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __dfs, _ResultsVec >::_M_sol_pos
const char * | std::__detail::_ScannerBase::_M_spec_char
_StateIdT | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __bfs, _ResultsVec >::_M_start
_StateIdT | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __dfs, _ResultsVec >::_M_start
_StateIdT | std::__detail::_StateSeq< _TraitsT >::_M_start
_StateIdT | std::__detail::_NFA_base::_M_start_state
_StateT | std::__detail::_ScannerBase::_M_state
_State_info< __search_mode, _ResultsVec > | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_M_states
size_t std::__detail::_State_base::_M_subexpr
_SizeT | std::__detail::_NFA_base::_M_subexpr_count
_TokenT | std::__detail::_ScannerBase::_M_token
const std::pair< char, _TokenT > | std::__detail::_ScannerBase::_M_token_tbl [9]
const _TraitsT & | std::__detail::_RegexTranslatorBase< _TraitsT, __icase, __collate >::_M_traits
_TraitsT | std::__detail::_NFA< _TraitsT >::_M_traits
_TransT | std::__detail::_AnyMatcher< _TraitsT, false, __icase, __collate >::_M_translator
_TransT | std::__detail::_AnyMatcher< _TraitsT, true, __icase, __collate >::_M_translator
_TransT | std::__detail::_CharMatcher< _TraitsT, __icase, __collate >::_M_translator
unique_ptr< bool[]> | std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >::_State_info< __bfs, _ResultsVec >::_M_visited_states
static const _StateIdT | std::__detail::_S_invalid_state_id

## Detailed Description

## Enumeration Type Documentation

## _Opcode

enum std::__detail::_Opcode : int

Operation codes that define the type of transitions within the base NFA that represents the regular expression.

Definition at line 56 of file regex_automaton.h.

## _TokenT

enum std::__detail::_ScannerBase::_TokenT : unsigned

Token types returned from the scanner.

Definition at line 46 of file regex_scanner.h.