#pragma once #include #include #include namespace flow { struct default_log_spec { using flavor = logging::default_flavor_t; constexpr static auto level = logging::level::TRACE; }; template constexpr auto log_spec = default_log_spec{}; template struct log_spec_id_t { constexpr static auto ct_name = Name; }; template , typename... DummyArgs> requires(sizeof...(DummyArgs) == 0) constexpr static auto get_log_spec() { using log_spec_t = decltype(log_spec); if constexpr (std::is_same_v) { if constexpr (Fallback::ct_name == stdx::ct_string{"default"}) { return log_spec; } else { return get_log_spec(); } } else { return log_spec_t{}; } } } // namespace flow