|
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