18 # define DEBUG_IFELSE(Then, Else) Then    20 # define DEBUG_IFELSE(Then, Else) Else    23 #define DEBUG_IF(Then) DEBUG_IFELSE(Then,)    30     template <Automaton Aut>
    31     class name_automaton_impl
    32       : 
public automaton_decorator<Aut>
    50         static auto res = 
symbol{
"name_automaton<"    57         o << 
"name_automaton<";
    63       using smap = std::unordered_map<state_name_t, state_t>;    67       state_t state(const state_name_t& r, state_t s)    75       state_t state(const state_name_t& r)    77         // Benches show that the map_.emplace technique is slower, and    78         // then that operator[] is faster than emplace.    80         auto i = map_.find(r);    81         if (i == std::end(map_))    82           res = state(r, super_t::new_state());    88       using super_t::add_transition;    90       add_transition(state_t src, state_name_t dst,    91                      label_t l, const weight_t& w)    93         super_t::add_transition(src, state(dst), l, w);    96       using super_t::new_transition;    98       new_transition(state_t src, state_name_t dst,    99                      label_t l, const weight_t& w)   101         super_t::new_transition(src, state(dst), l, w);   104       using super_t::set_initial;   106       set_initial(state_name_t s, const weight_t& w)   108         super_t::set_initial(state(s), w);   111       bool state_has_name(state_t s) const   113         return has(origins(), s);   117       print_state_name(state_t s, std::ostream& o,   121         auto i = origins().find(s);   122         if (i == std::end(origins()))   123           this->print_state(s, o);   130       using origins_t = std::map<state_t, state_name_t>;   131       mutable origins_t origins_;   135         if (origins_.empty())   136           for (const auto& p: map_)   137             origins_[p.second] = p.first; 
typename detail::state_t_of_impl< base_t< ValueSet > >::type state_t_of
 
state_t_of< super_t > state_t
 
context_t_of< automaton_t > context_t
 
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string. 
 
std::ostream & print_set(std::ostream &o, format fmt={}) const
 
weight_t_of< super_t > weight_t
 
auto print_set(Args &&... args) const -> decltype(aut_-> print_set(std::forward< Args >(args)...))
 
name_automaton_impl(const context_t &ctx)
 
typename detail::context_t_of_impl< base_t< ValueSet > >::type context_t_of
 
An input/output format for valuesets. 
 
typename detail::label_t_of_impl< base_t< ValueSet > >::type label_t_of
 
Aggregate an automaton, and forward calls to it. 
 
static symbol sname()
Static name. 
 
label_t_of< super_t > label_t
 
typename detail::weight_t_of_impl< base_t< ValueSet > >::type weight_t_of