Ошибка spdlog: «не знаю, как форматировать тип, включите fmt / ostream.h, если он предоставляет оператор & lt; & lt; что следует использовать & quot;

Я только что поднял spdlog, чтобы улучшить нашу регистрацию. Наша регистрация очень проста, поэтому я просто дословно копирую пример с несколькими приемниками для записи в файл и консоль.

Однако даже если точно следовать примеру, я получаю:

Ошибка C2338 не знаю, как форматировать тип, включите fmt / ostream.h, если он предоставляет оператор<< что следует использовать Logger d: \ tfs \ development \ bladed \ main \ external \ spdlog \ spdlog-1.x \ include \ spdlog \ fmt \ bundled \ core.h 351

Исходя из core.h:

// A formatter for objects of type T.
template <typename T, typename Char = char, typename Enable = void>
struct formatter {
static_assert(no_formatter_error<T>::value,
"don't know how to format the type, include fmt/ostream.h if it provides ""an operator<< that should be used");

Я предполагаю, что это действительно легко исправить, но я не вижу этого …

[основное использование Win32]

0

Решение

С @PaulMcKenzie, указывающим на меня в правильном направлении, кажется, что я пытался записать тип строки, которую spdlog не может обработать по умолчанию (std :: wstrings).

Intellisense в Visual Studio, казалось, был сбит с толку шаблонами, из-за чего он казался довольным моей отправкой spdlog :: warn a std :: wstring.

Решение: либо просто используйте std :: string, либо, если вы хотите использовать wstrings, вам (вероятно) необходимо определить для них форматирование обычного режима.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]