1 #ifndef VCSN_DYN_RATEXP_HH
2 # define VCSN_DYN_RATEXP_HH
24 virtual std::string
vname(
bool full =
true)
const = 0;
27 template <
typename RatExpSet>
34 template <
typename RatExpSet>
43 template <
typename RatExpSet>
44 class ratexp_wrapper:
public ratexp_base
49 using ratexp_t =
typename ratexpset_t::value_t;
56 virtual std::string
vname(
bool full =
true)
const override
80 using ratexp = std::shared_ptr<detail::ratexp_base>;
82 template <
typename RatExpSet>
86 const typename RatExpSet::value_t&
ratexp)
89 return std::make_shared<wrapper_t>(
ratexp, rs);
95 #endif // !VCSN_DYN_RATEXP_HH
typename ratexpset_t::value_t ratexp_t
ratexp make_ratexp(const RatExpSet &rs, const typename RatExpSet::value_t &ratexp)
const ratexp_wrapper< RatExpSet > & as() const
Extract wrapped typed ratexp.
const ratexp_t ratexp() const
ratexp_wrapper< RatExpSet > & as()
Extract wrapped typed ratexp.
Aggregate a ratexp and its ratexpset.
std::shared_ptr< detail::ratexp_base > ratexp
std::shared_ptr< const detail::ratexpset_base > ratexpset
const ratexp_t ratexp_
The ratexp.
virtual std::string vname(bool full=true) const override
A description of the ratexp type.
const ratexpset_t & ratexpset() const
ratexp_wrapper(const ratexp_t &ratexp, const ratexpset_t &ratexpset)
const ratexpset_t ratexpset_
The ratexp set.