26 template <
typename AutImpl>
28 : self_(
std::make_shared<
model<
std::shared_ptr<AutImpl>>>(aut))
34 return self_->vname();
38 template <Automaton Aut>
45 template <Automaton Aut>
46 const auto&
as()
const
70 virtual ~
base() =
default;
75 template <Automaton Aut>
81 : automaton_(
std::move(aut))
111 template <Automaton Aut>
Abstract wrapped typed automaton.
symbol vname() const
A description of the automaton, sufficient to build it.
automaton(const std::shared_ptr< AutImpl > &aut)
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
A wrapped typed automaton.
To dyn_cast(From &&from)
A dynamic_cast in debug mode, static_cast with NDEBUG.
const auto & as() const
Extract wrapped typed automaton.
detail::automaton automaton
const auto * operator->() const
automaton(std::nullptr_t ptr)
automaton_t automaton_
The automaton.
automaton make_automaton(const Aut &aut)
Build a dyn::automaton.
auto & as()
Extract wrapped typed automaton.
const auto & automaton() const
std::shared_ptr< base > self_
The wrapped automaton.