1#ifndef __DUNE_ACFEM_MPL_TOSTRING_HH__
2#define __DUNE_ACFEM_MPL_TOSTRING_HH__
5#include "generators.hh"
27 template<
class T, T I0>
30 return std::to_string(I0);
36 template<
class T, T I0, T I1, T... Rest>
50 template<
class T, std::
size_t I0>
51 std::string toStringHelper(
const T& t, IndexSequence<I0>)
53 return std::to_string(std::get<I0>(t));
56 template<
class T, std::size_t I0, std::size_t I1, std::size_t... Rest>
57 auto toStringHelper(
const T& t, IndexSequence<I0, I1, Rest...>)
59 return std::to_string(std::get<I0>(t)) +
"," + toStringHelper(t, IndexSequence<I1, Rest...>{});
63 template<
class T, std::enable_if_t<IsTupleLike<T>{},
int> = 0>
64 auto toString(
const T& t)
66 return toStringHelper(t, MakeSequenceFor<T>{});
69 template<
class T, T V, std::enable_if_t<!std::is_same<T,
bool>{},
int> = 0>
70 auto toString(Constant<T, V>)
72 return std::to_string(V)+
"_c";
76 std::string toString(BoolConstant<V>)
78 return V ?
"true" :
"false";
std::integer_sequence< T, V... > Sequence
Sequence of any type of integer values.
Definition: types.hh:56