Мы создаем систему событий, где определенные события (ввод, изменение размера окна и т. д.) регистрируются на консоли с помощью системы журналирования, созданной на основе библиотеки spdlog. Диспетчер событий отправляет события соответствующей функции:
Код: Выделить всё
class EventDispatcher {
template
using EventFn = std::function;
public:
EventDispatcher(Event& event)
: m_Event(event) {}
template
bool Dispatch(EventFn func) {
if (m_Event.GetEventType() == T::GetStaticType()) {
m_Event.m_Handled = func(*(T*)&m_Event);
return true;
}
return false;
}
private:
Event& m_Event;
};
Если кто-нибудь что-нибудь знает о spdlog code> и мог бы мне помочь, буду признателен. Спасибо!
Изменить:
Полная ошибка вывода:
Код: Выделить всё
1>...\vendor\spdlog\include\spdlog\fmt\bundled\core.h(1568,58): error C2338: Cannot format an argument. To make type T formattable provide a formatter specialization: https://fmt.dev/latest/api.html#udt
Код: Выделить всё
1563 template
1565 FMT_CONSTEXPR FMT_INLINE auto make_arg(const T& val) -> value {
1566 const auto& arg = arg_mapper().map(val);
1567 static_assert(
1568 std::is_same::value, //
Подробнее здесь: [url]https://stackoverflow.com/questions/69442851/cannot-format-an-argument-when-using-spdlog[/url]
Мобильная версия