0
int main()
{
    std::map<std::string, std::string> o;
    o["foo"] = "foo value";
    spdlog::info(o);
    return 0;
}

得到错误:由于要求'formattable'而导致static_assert失败“无法格式化参数。要使type T formattable提供格式化程序专业化:https ://fmt.dev/latest/api.html#formatting-user-defined-types ”

4

1 回答 1

0

spdlog 仅支持具有operator <<(with #include <fmt/ostream.h>)的类型

您有 2 个选项:

  • 实现功能:std::ostream& operator <<(std::ostream&, const std::map<std::string, std::string>&)
  • 在循环中记录键和值:
for (const auto&[k, v] : o)
{
    spdlog::info("key is {}, value is {}", k, v);
}
于 2020-05-07T20:35:39.633 回答