|
template<size_t N> |
constexpr descr< N-1 > | _ (char const (&text)[N]) |
|
constexpr descr< 0 > | _ (char const (&)[1]) |
|
template<bool B, size_t N1, size_t N2> |
constexpr enable_if_t< B, descr< N1-1 > > | _ (char const (&text1)[N1], char const (&)[N2]) |
|
template<bool B, size_t N1, size_t N2> |
constexpr enable_if_t<!B, descr< N2-1 > > | _ (char const (&)[N1], char const (&text2)[N2]) |
|
template<bool B, typename T1 , typename T2 > |
constexpr enable_if_t< B, T1 > | _ (const T1 &d, const T2 &) |
|
template<bool B, typename T1 , typename T2 > |
constexpr enable_if_t<!B, T2 > | _ (const T1 &, const T2 &d) |
|
template<size_t Size> |
auto constexpr | _ () -> decltype(int_to_str< Size/10, Size%10 >::digits) |
|
template<typename Type > |
constexpr descr< 1, Type > | _ () |
|
constexpr descr< 0 > | concat () |
|
template<size_t N, typename... Ts> |
constexpr descr< N, Ts... > | concat (const descr< N, Ts... > &descr) |
|
template<size_t N, typename... Ts, typename... Args> |
constexpr auto | concat (const descr< N, Ts... > &d, const Args &...args) -> decltype(std::declval< descr< N+2, Ts... >>()+concat(args...)) |
|
template<size_t N1, size_t N2, typename... Ts1, typename... Ts2> |
constexpr descr< N1+N2, Ts1..., Ts2... > | operator+ (const descr< N1, Ts1... > &a, const descr< N2, Ts2... > &b) |
|
template<size_t N1, size_t N2, typename... Ts1, typename... Ts2, size_t... Is1, size_t... Is2> |
constexpr descr< N1+N2, Ts1..., Ts2... > | plus_impl (const descr< N1, Ts1... > &a, const descr< N2, Ts2... > &b, index_sequence< Is1... >, index_sequence< Is2... >) |
|
template<size_t N, typename... Ts> |
constexpr descr< N+2, Ts... > | type_descr (const descr< N, Ts... > &descr) |
|