1 #ifndef VCSN_DYN_EXPANSION_HH
2 # define VCSN_DYN_EXPANSION_HH
20 virtual std::string
vname(
bool full =
true)
const = 0;
22 template <
typename ExpansionSet>
28 template <
typename ExpansionSet>
36 template <
typename ExpansionSet>
50 virtual std::string
vname(
bool full =
true)
const override
74 using expansion = std::shared_ptr<const detail::expansion_base>;
76 template <
typename ExpansionSet>
80 const typename ExpansionSet::value_t&
expansion)
83 return std::make_shared<wrapper_t>(
expansion, ps);
88 #endif // !VCSN_DYN_EXPANSION_HH
expansion_wrapper(const expansion_t &expansion, const expansionset_t &expansionset)
virtual std::string vname(bool full=true) const =0
A description of the expansion.
expansion make_expansion(const ExpansionSet &ps, const typename ExpansionSet::value_t &expansion)
const expansion_t expansion_
The expansion.
const expansionset_t & expansionset() const
virtual std::string vname(bool full=true) const override
A description of the expansion.
const expansion_wrapper< ExpansionSet > & as() const
expansion_wrapper< ExpansionSet > & as()
ExpansionSet expansionset_t
const expansionset_t expansionset_
The expansion set.
typename expansionset_t::value_t expansion_t
std::shared_ptr< const detail::expansion_base > expansion
Aggregate a expansion and its expansionset.
const expansion_t expansion() const
virtual ~expansion_wrapper()