如果没有,你知道什么编译器或版本会吗?
请参阅 cpp 参考/格式。
现在已经是 2023 年了!干杯!
GCC 13、CLANG 14和MSVC 16.10/VS 2019都在各自的标准库中提供了基于{fmt}的
std::format
。
希望我们很快就能推出 C++23
std::print
。
请参阅此处的编译器支持:-
编辑: 自 GCC 13 起就提供了对
format
的支持。对于想要查找其他库或功能的编译器支持的人,请参阅下面来自 cppreference.com 的编译器支持链接
gcc 支持 C++20
吗?std::format
还没有!
尚无编译器支持,甚至gcc 11。请参阅库功能中的
Text formatting
。
截至今天(2023 年 12 月 12 日),GCC 13.1 确实支持此功能。或者更确切地说,它的标准库实现确实支持它(因为它是一个库功能,而不是编译器功能)(link)
此外,您现在可以尝试 Clang 17.0.0 及更高版本。另外,但请注意以下几点:
在 Clang 14.0.0
std::format
的libc++中添加了支持,但是: “该论文已实现,但仍标记为不完整的功能。尚未实现的 LWG 问题将导致 API 和 ABI 损坏”( 链接)在 Clang 15.0.0 及更高版本的 libc++ 中,可以使用
编译器标志 (link) 启用此功能-fexperimental-library
此外,您还可以尝试 MSVC 16.10 及更高版本。提到对
std::format
的支持是完整的。
标准库当前状态可以在这里查看:
GCC 13 添加了对 std::format 的支持。根据 cppreference,截至 GCC 13,其 C++20 支持(核心语言和标准库)不存在任何差距。
此 bugzilla 票证 指出 std::format 的某些 C++23 扩展尚未实现。
GCC 13 预计将于 2023 年 4 月左右发布。
编译器资源管理器上的 GCC 主干安装包括 std::format 支持。
OpenSUSE Tumbleweed(截至 2023 年 3 月 19 日)和即将推出的 Fedora 38 包括 GCC 13。