26 #define DEFINE(Type) \
29 template <typename ValueSet> \
30 struct Type ## _of_impl \
32 using type = typename ValueSet::Type; \
35 template <typename ValueSet> \
36 struct Type ## _of_impl<std::shared_ptr<ValueSet>> \
37 : Type ## _of_impl<base_t<ValueSet>> \
41 template <typename ValueSet> \
43 = typename detail::Type ## _of_impl<base_t<ValueSet>>::type
55 template <
typename Aut,
typename Context = context_t_of<Aut>>
57 =
typename Aut::element_type::template fresh_automaton_t<Context>;
59 template <
typename ValueSet>
63 template <
typename ValueSet>
remove_cv_t< remove_reference_t< T >> base_t
T without reference or const/volatile qualifiers.
typename std::remove_cv< T >::type remove_cv_t
#define DEFINE(Type)
Extract various ValueSets/Value types from objects, or pointers to objects.
typename labelset_t_of< base_t< ValueSet >>::letter_t letter_t_of
typename Aut::element_type::template fresh_automaton_t< Context > fresh_automaton_t_of
typename labelset_t_of< base_t< ValueSet >>::word_t word_t_of
typename detail::labelset_t_of_impl< base_t< ValueSet >>::type labelset_t_of