GCC 支持 C++20 std::format 吗?

问题描述 投票:0回答:5

如果没有,你知道什么编译器或版本会吗?

请参阅 cpp 参考/格式

c++ gcc stl c++20 fmt
5个回答
90
投票

现在已经是 2023 年了!干杯!

GCC 13CLANG 14MSVC 16.10/VS 2019都在各自的标准库中提供了基于{fmt}

std::format

希望我们很快就能推出 C++23

std::print


请参阅此处的编译器支持:-


41
投票

编辑: 自 GCC 13 起就提供了对

format
的支持。对于想要查找其他库或功能的编译器支持的人,请参阅下面来自 cppreference.com 的编译器支持链接

gcc 支持 C++20

std::format
吗?

还没有!

尚无编译器支持,甚至gcc 11。请参阅库功能中的

Text formatting

编译器对 C++20 库功能的支持


21
投票

截至今天(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++ 中,可以使用

-fexperimental-library
编译器标志 (link)

启用此功能

此外,您还可以尝试 MSVC 16.10 及更高版本。提到对

std::format
的支持是完整的。


标准库当前状态可以在这里查看:


7
投票

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。


6
投票
现在libstdc++已经实现了!

https://gcc.gnu.org/pipermail/libstdc++/2022-November/054991.html

© www.soinside.com 2019 - 2024. All rights reserved.