2

我正在使用{fmt}C++ 库。我fmt::formatter为自己的类型编写了许多专业。其中大多数没有格式化选项,因此每个类都有一个样板实现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

4

1 回答 1

1

的实现parse可以简单得多:

constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }

您还可以formatter通过继承或组合重用现有的特化。

于 2021-01-22T01:47:58.433 回答