|
18 | 18 |
|
19 | 19 | namespace logging::mipi {
|
20 | 20 | namespace detail {
|
21 |
| -template <logging::level L, typename S, typename T> |
| 21 | +template <logging::level L, typename S, typename... Args> |
22 | 22 | constexpr auto to_message() {
|
23 | 23 | constexpr auto s = S::value;
|
24 | 24 | using char_t = typename std::remove_cv_t<decltype(s)>::value_type;
|
25 |
| - return [&]<template <typename...> typename Tuple, typename... Args, |
26 |
| - std::size_t... Is>(Tuple<Args...> const &, |
27 |
| - std::integer_sequence<std::size_t, Is...>) { |
| 25 | + return [&]<std::size_t... Is>(std::integer_sequence<std::size_t, Is...>) { |
28 | 26 | return sc::message<
|
29 | 27 | L, sc::undefined<sc::args<Args...>, char_t, s[Is]...>>{};
|
30 |
| - }(T{}, std::make_integer_sequence<std::size_t, std::size(s)>{}); |
31 |
| -} |
32 |
| - |
33 |
| -template <logging::level L, typename Msg> constexpr auto to_message(Msg msg) { |
34 |
| - if constexpr (requires { msg.args; }) { |
35 |
| - return to_message<L, decltype(msg.str), decltype(msg.args)>(); |
36 |
| - } else { |
37 |
| - return to_message<L, Msg, stdx::tuple<>>(); |
38 |
| - } |
| 28 | + }(std::make_integer_sequence<std::size_t, std::size(s)>{}); |
39 | 29 | }
|
40 | 30 |
|
41 | 31 | template <typename S> constexpr auto to_module() {
|
@@ -122,8 +112,8 @@ template <typename TDestinations> struct log_handler {
|
122 | 112 |
|
123 | 113 | template <logging::level Level, typename ModuleId, typename Msg>
|
124 | 114 | ALWAYS_INLINE auto log_msg(Msg msg) -> void {
|
125 |
| - msg.apply([&]<typename StringType>(StringType, auto... args) { |
126 |
| - using Message = decltype(detail::to_message<Level>(msg)); |
| 115 | + msg.apply([&]<typename S, typename... Args>(S, Args... args) { |
| 116 | + using Message = decltype(detail::to_message<Level, S, Args...>()); |
127 | 117 | using Module = decltype(detail::to_module<ModuleId>());
|
128 | 118 | dispatch_message<Level>(catalog<Message>(), module<Module>(),
|
129 | 119 | static_cast<std::uint32_t>(args)...);
|
|
0 commit comments