我知道 c++20 格式提案是libfmt部分的形式化,而 libfmt 是该形式化的兼容实现。但是,据我了解,libfmt 提供了超出 c++20 标准中指定的附加功能。有哪些附加功能?
另外,主要的编译器供应商是简单地包含 libfmt 的一个子集还是重新实现它?
libfmt 中有很多东西不是 C++20 格式的:
fmt::print()
直接打印到标准输出。这是在P2093中提出的。fmt::printf()
也存在,但未在该论文中提出。fmt::memory_buffer
基本上是一个动态大小的容器,您可以将其格式化为 via fmt::format_to(buf, ...)
。fmt::join()
.fmt::print("Elapsed time: {s:.2f} seconds", "s"_a=1.23);
FMT_COMPILE