diff --git a/include/spdlog/details/log_attr.h b/include/spdlog/details/log_attr.h index 4dfd919e..e1cab9b3 100644 --- a/include/spdlog/details/log_attr.h +++ b/include/spdlog/details/log_attr.h @@ -8,8 +8,8 @@ namespace spdlog { namespace details { -//template -//concept composable = std::same_as || std::integral || std::floating_point || std::convertible_to; +// template +// concept composable = std::same_as || std::integral || std::floating_point || std::convertible_to; struct attr { @@ -17,14 +17,16 @@ struct attr std::string value; public: - attr(std::initializer_list l) { - if (l.size() != 2) return; // throw exception if not kv pair? + attr(std::initializer_list l) + { + if (l.size() != 2) + return; // throw exception if not kv pair? scramble(key, *l.begin()); - scramble(value, *(l.begin()+1)); + scramble(value, *(l.begin() + 1)); } - attr(string_view_t k, bool v) + attr(string_view_t k, bool v) : value{v ? "true" : "false"} { key = std::string{k.data(), k.size()}; @@ -36,10 +38,27 @@ public: value = std::string{v.data(), v.size()}; } - attr(std::string k, std::string v) : key{k}, value{v} {} + attr(std::string k, std::string v) + : key{k} + , value{v} + {} - template - attr(string_view_t k, T const &v) + attr(string_view_t k, long v) + : value{std::to_string(v)} + { + key = std::string{k.data(), k.size()}; + } + attr(string_view_t k, long long v) + : value{std::to_string(v)} + { + key = std::string{k.data(), k.size()}; + } + attr(string_view_t k, unsigned long v) + : value{std::to_string(v)} + { + key = std::string{k.data(), k.size()}; + } + attr(string_view_t k, unsigned long long v) : value{std::to_string(v)} { key = std::string{k.data(), k.size()};