8 #include <vcsn/dyn/fwd.hh>
24 template <
typename AutImpl>
26 : self_(
std::make_shared<
model<
std::shared_ptr<AutImpl>>>(aut))
32 return self_->vname();
36 template <Automaton Aut>
43 template <Automaton Aut>
44 const auto&
as()
const
68 virtual ~
base() =
default;
73 template <Automaton Aut>
79 : automaton_(
std::move(aut))
automaton(const std::shared_ptr< AutImpl > &aut)
To dyn_cast(From &&from)
A dynamic_cast in debug mode, static_cast with NDEBUG.
automaton_t automaton_
The automaton.
A wrapped typed automaton.
const auto * operator->() const
automaton(std::nullptr_t ptr)
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
Abstract wrapped typed automaton.
symbol vname() const
A description of the automaton, sufficient to build it.
const auto & as() const
Extract wrapped typed automaton.
const auto & automaton() const
std::shared_ptr< base > self_
The wrapped automaton.
auto & as()
Extract wrapped typed automaton.