1 #ifndef VCSN_MISC_NAME_HH
2 # define VCSN_MISC_NAME_HH
4 # include <initializer_list>
43 template <
typename... Args>
48 return {sname<Args>()...};
60 return t->vname(
false);
79 #define DEFINE(Type) \
83 std::string operator()() \
92 std::string operator()(Type&) \
119 template <
typename T, T Value>
124 return "std::integral_constant<unsigned, " +
std::to_string(Value) +
">";
128 template <
typename T, T Value>
131 using type = std::integral_constant<T, Value>;
134 return sname<type>();
175 template <
typename... Args>
180 return {
vname(std::forward<Args>(args))...};
185 #endif // !VCSN_MISC_NAME_HH
std::integral_constant< T, Value > type
std::string to_string(identities i)
std::string operator()(type)
signature vsignature(Args &&...args)
The signature of (Args...).
signature ssignature()
Static signature.
std::string operator()(T &t)
A simple placeholder for integral constants.
std::string operator()(integral_constant t)
identities
A ratexpset can implement several different sets of identities on expressions.