Я хочу сделать свой пользовательский тип форматируемым, унаследовав существующий модуль форматирования для некоторого строкового типа. В чем разница между fmt::formatter, fmt::formatter, fmt::formatter? Должны ли они быть включены через format.h или core.h? Требует ли первый минимальных зависимостей?
// type.h
#include
#include
struct Type {
// ...
};
auto to_string(Type x) -> std::string {};
template
struct fmt::formatter : formatter {
auto format(Type x, format_context& ctx) const -> format_context::iterator;
};
// type.cpp
#include "type.h"
#include
auto fmt::formatter::format(Type x, format_context& ctx) const -> format_context::iterator {
return formatter::format(to_string(x).c_str(), ctx);
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... g-view-std