fmtlib:没有解析选项的用户定义类型的快捷方式?
fmtlib: shortcut for user-defined types with no parsing options?
我正在使用 {fmt}
C++ 库。我为我自己的类型写了很多 fmt::formatter
专业化。其中大部分都没有格式化选项,因此每个 class 都有一个样板实现 parse(format_parse_context)
:
constexpr auto parse(format_parse_context& ctx)
{
auto it = ctx.begin(), end = ctx.end();
if (it != end && *it != '}')
throw format_error("invalid format");
return it;
}
我希望 fmt::formatter
有一个 parse
的默认实现,它没有任何选项,但它没有。这有什么捷径吗?像 fmt::optionless_formatter
class?
parse
的实现可以简单得多:
constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }
您还可以通过继承或组合重用现有的 formatter
特化。
我正在使用 {fmt}
C++ 库。我为我自己的类型写了很多 fmt::formatter
专业化。其中大部分都没有格式化选项,因此每个 class 都有一个样板实现 parse(format_parse_context)
:
constexpr auto parse(format_parse_context& ctx)
{
auto it = ctx.begin(), end = ctx.end();
if (it != end && *it != '}')
throw format_error("invalid format");
return it;
}
我希望 fmt::formatter
有一个 parse
的默认实现,它没有任何选项,但它没有。这有什么捷径吗?像 fmt::optionless_formatter
class?
parse
的实现可以简单得多:
constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }
您还可以通过继承或组合重用现有的 formatter
特化。