Vcsn
2.4
Be Rational
|
Go to the source code of this file.
Namespaces | |
vcsn | |
vcsn::detail | |
Macros | |
#define | DEFINE(Type) |
Extract various ValueSets/Value types from objects, or pointers to objects. More... | |
Typedefs | |
template<typename T > | |
using | vcsn::base_t = std::remove_cv_t< std::remove_reference_t< T >> |
T without reference or const/volatile qualifiers. More... | |
template<typename ValueSet > | |
using | vcsn::context_t_of = typename detail::context_t_of_impl< base_t< ValueSet >>::type |
template<typename ValueSet > | |
using | vcsn::label_t_of = typename detail::label_t_of_impl< base_t< ValueSet >>::type |
template<typename ValueSet > | |
using | vcsn::labelset_t_of = typename detail::labelset_t_of_impl< base_t< ValueSet >>::type |
template<typename ValueSet > | |
using | vcsn::state_t_of = typename detail::state_t_of_impl< base_t< ValueSet >>::type |
template<typename ValueSet > | |
using | vcsn::transition_t_of = typename detail::transition_t_of_impl< base_t< ValueSet >>::type |
template<typename ValueSet > | |
using | vcsn::weight_t_of = typename detail::weight_t_of_impl< base_t< ValueSet >>::type |
template<typename ValueSet > | |
using | vcsn::weightset_t_of = typename detail::weightset_t_of_impl< base_t< ValueSet >>::type |
template<typename Aut , typename Context = context_t_of<Aut>> | |
using | vcsn::fresh_automaton_t_of = typename Aut::element_type::template fresh_automaton_t< Context > |
Given an automaton type, the type of its copies. More... | |
template<typename ValueSet > | |
using | vcsn::letter_t_of = typename labelset_t_of< base_t< ValueSet >>::letter_t |
template<typename ValueSet > | |
using | vcsn::word_t_of = typename labelset_t_of< base_t< ValueSet >>::word_t |
#define DEFINE | ( | Type | ) |
Extract various ValueSets/Value types from objects, or pointers to objects.
Example of valid uses:
labelset_t_of<mutable_automaton_impl> // a class labelset_t_of<mutable_automaton> // a shared_ptr
SFINAE compliant.