libfmt和std :: format有什么区别?

问题描述

我知道c ++ 20格式的提案是libfmt的 parts 的形式化规范,而libfmt是该形式化的兼容实现。但是,据我了解,libfmt提供了c ++ 20标准中指定的功能以外的其他功能。有哪些其他功能

此外,主要的编译器供应商是否只是包含libfmt的子集或重新实现它?

解决方法

libfmt中有一堆不是C ++ 20格式的东西:

  • fmt::print()直接打印到标准输出。这在P2093中提出。 fmt::printf()也存在,但在该论文中未提出。
  • fmt::memory_buffer基本上是一个动态尺寸的容器,您可以通过fmt::format_to(buf,...)将其格式化。
  • 支持格式化ranges and tuples,包括fmt::join()
  • 支持fmt::print("Elapsed time: {s:.2f} seconds","s"_a=1.23);之类的named arguments
  • 通过FMT_COMPILE
  • 的编译时格式字符串

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...