{fmt}6.2.0 API 中文翻译


【注】:非逐词翻译。


API Reference

{fmt}库的API由以下部分组成:

  • fmt/core.h: 核心API,提供参数处理功能和格式化函数的轻量级子集。
  • fmt/format.h: 完整API,提供格式化字符串的编译时检查,迭代器输出,以及自定义类型的格式化。
  • fmt/ranges.h: 针对范围类型和元组类型的格式化支持。
  • fmt/chrono.h: 日期和时间的格式化支持。
  • fmt/ostream.h: 对std::ostream的支持。
  • fmt/printf.h: printf格式化。

该库提供的所有函数和类型,都在名称空间fmt中,宏具有前缀FMT_

Core API

fmt/core.h定义了核心API,该API提供了参数处理功能和格式化函数的轻量子集。在header-only模式下(仅包含头文件就能使用库),应该包含 fmt/format.h而不是fmt/core.h。

以下函数使用格式字符串语法, 类似于Python的str.format。他们采用format_strargs作为参数。

format_str是一个格式字符串,其中包含文字文本和用括号括起来的替换字段{}。这些字段将替换为结果字符串中带格式的参数。

args是一个参数列表,表示要格式化的对象。


// 格式化参数并返回一个string
template <typename S, typename... Args, typename Char = char_t<S>>
std::basic_string<Char> fmt::format(const S &format_str, Args&&... args);
//--------------Example---------------:
#include <fmt/core.h>
std::string message = fmt::format("The answer is {}", 42);
template <typename S, typename Char = char_t<S>>
std::basic_string<Char> fmt::vformat(const S &format_str, basic_format_args<buffer_context<type_identity_t<Char>>> args);

// 根据format_str格式化args, 并写入stdout.
// 字符串使用Unicode编码(除非 FMT_UNICODE 宏被设置为0)
template <typename S, typename... Args, typename Char = char_t<S>>
void fmt::print(const S &format_str, Args&&... args);
//--------------Example---------------:
fmt::print("Elapsed time: {0:.2f} seconds", 1.23);
void fmt::buffered_file::vprint(string_view format_str, format_args args);

// 根据format_str格式化args, 并写入文件流f.
// 字符串使用Unicode编码(除非 FMT_UNICODE 宏被设置为0)
template <typename S, typename... Args, typename Char = char_t<S>>
void fmt::print(std::FILE *f, const S &format_str, Args&&... args);
//--------------Example---------------:
fmt::print(stderr, "Don't {}!", "panic");
void fmt::vprint(std::FILE *, string_view, format_args);

Named Arguments(命名参数)

// 返回要在格式化函数中使用的命名参数。仅在格式化函数中使用。(目前不支持编译时检查)
template <typename S, typename T, typename Char = char_t<S>>
internal::named_arg<T, Char> fmt::arg(const S &name, const T &arg)
//--------------Example---------------:
fmt::print("Elapsed time: {s:.2f} seconds", fmt::arg("s", 1.23));

Argument Lists(参数列表)

// 构造一个 format_arg_store 对象,该对象包含对参数的引用,并能隐式地转换为 format_args.
// Context可以省略,使用默认值.
template <typename Context = format_context, typename... Args>
format_arg_store<Context, Args...> fmt::make_format_args(const Args&... args)
// 引用参数地数组. 该数组可以隐式地转换为 basic_format_args, 用来传递给类型擦除的格式化函数, 例如vformat().
template <typename Context, typename... Args>
class fmt::format_arg_store;
// 格式化参数的集合,只能在类型擦除的函数(例如vformat)中作为一种类型.
template <typename Context>
class fmt::basic_format_args;
// public函数:
template <typename... Args>
basic_format_args(const format_arg_store<Context, Args...> &store);
basic_format_args(const dynamic_format_arg_store<Context> &store);
basic_format_args(const format_arg *args, int count);
format_arg get(int index) const; // 返回指定索引处的参数。
// basic_format_args<context> 的别名.
// 继承自 fmt::basic_format_args< format_context >
struct fmt::format_args;
template <typename Context>
class fmt::basic_format_arg;// 不带s

Compatibility(兼容性)

// std::basic_string_view 在C ++ 17之前版本的实现。
// 提供了一个API子集. 当该库的编译选项-std与客户主代码不一致时(不推荐这样做), fmt::basic_string_view 也能被用来格式化字符串.
template <typename Char>
class fmt::basic_string_view;
// public 函数
// 使用c字符串及其大小来构造一个字符串引用对象
basic_string_view(const Char *s, size_t count); 
// 使用c字符串及其大小来构造一个字符串引用对象,大小使用std::char_traits<Char>::length计算
basic_string_view(const Char *s);
// 从一个 std::basic_string 来构造一个字符串引用对象
template <typename Traits, typename Alloc>
basic_string_view(const std::basic_string<Char, Traits, Alloc> &s);
// 返回字符串数据的指针
const Char *data() const;
// 返回字符串大小
size_t size() const;
using fmt::string_view = typedef basic_string_view<char>;
using fmt::wstring_view = typedef basic_string_view<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值