1 #ifndef VCSN_DYN_FWD_HH
2 # define VCSN_DYN_FWD_HH
16 template <
typename Aut>
17 class automaton_wrapper;
19 using automaton = std::shared_ptr<detail::automaton_base>;
25 template <
typename Context>
26 class context_wrapper;
28 using context = std::shared_ptr<const detail::context_base>;
34 template <
typename Aut>
35 class expansion_wrapper;
37 using expansion = std::shared_ptr<const detail::expansion_base>;
46 using label = std::shared_ptr<const detail::label_base>;
51 class polynomial_base;
52 template <
typename PolynomialSet>
55 using polynomial = std::shared_ptr<const detail::polynomial_base>;
61 template <
typename RatExpSet>
64 using ratexp = std::shared_ptr<detail::ratexp_base>;
70 template <
typename RatExpSet>
73 using ratexpset = std::shared_ptr<const detail::ratexpset_base>;
82 using weight = std::shared_ptr<const detail::weight_base>;
104 # define REGISTER_DECLARE(Name, Signature) \
105 using Name ## _t = auto Signature; \
107 bool Name ## _register(const signature& sig, Name ## _t fn)
109 #endif // !VCSN_DYN_FWD_HH
Linear combination of labels: map labels to weights.
Aggregate a polynomial and its polynomialset.
std::shared_ptr< detail::automaton_base > automaton
A ValueSet which is a Cartesian product of ValueSets.
Wrapper around a ratexpset.
Implementation of labels are nullables (letter or empty).
std::shared_ptr< const detail::weight_base > weight
Aggregate a ratexp and its ratexpset.
std::shared_ptr< detail::ratexp_base > ratexp
Implementation of labels are ones: there is a single instance of label.
std::shared_ptr< const detail::expansion_base > expansion
std::shared_ptr< const detail::ratexpset_base > ratexpset
std::shared_ptr< const detail::label_base > label
Provide a variadic mul on top of a binary mul(), and one().
std::shared_ptr< const detail::context_base > context
Aggregate a weight and its weightset.
Implementation of labels are letters.
Implementation of labels are words.
Aggregate a label and its labelset.
std::shared_ptr< const detail::polynomial_base > polynomial