Lines Matching refs:descr
25 struct descr { struct
28 constexpr descr() : text{'\0'} { } in descr() argument
29 constexpr descr(char const (&s)[N+1]) : descr(s, make_index_sequence<N>()) { } in descr() argument
32 constexpr descr(char const (&s)[N+1], index_sequence<Is...>) : text{s[Is]..., '\0'} { } in descr() argument
35 constexpr descr(char c, Chars... cs) : text{c, static_cast<char>(cs)..., '\0'} { } in descr() argument
43 constexpr descr<N1 + N2, Ts1..., Ts2...> plus_impl(const descr<N1, Ts1...> &a, const descr<N2, Ts2.… in plus_impl() argument
49 constexpr descr<N1 + N2, Ts1..., Ts2...> operator+(const descr<N1, Ts1...> &a, const descr<N2, Ts2.…
54 constexpr descr<N - 1> _(char const(&text)[N]) { return descr<N - 1>(text); } in _()
55 constexpr descr<0> _(char const(&)[1]) { return {}; } in _()
59 static constexpr auto digits = descr<sizeof...(Digits)>(('0' + Digits)...);
64 constexpr enable_if_t<B, descr<N1 - 1>> _(char const(&text1)[N1], char const(&)[N2]) {
68 constexpr enable_if_t<!B, descr<N2 - 1>> _(char const(&)[N1], char const(&text2)[N2]) {
81 template <typename Type> constexpr descr<1, Type> _() { return {'%'}; }
83 constexpr descr<0> concat() { return {}; }
86 constexpr descr<N, Ts...> concat(const descr<N, Ts...> &descr) { return descr; }
89 constexpr auto concat(const descr<N, Ts...> &d, const Args &...args)
90 -> decltype(std::declval<descr<N + 2, Ts...>>() + concat(args...)) {
95 constexpr descr<N + 2, Ts...> type_descr(const descr<N, Ts...> &descr) {
96 return _("{") + descr + _("}");