提问人:Vladlen 提问时间:8/24/2023 最后编辑:wohlstadVladlen 更新时间:8/25/2023 访问量:886
GCC 是否支持 C++23 std::p rint?
Does GCC support C++23 std::print?
问:
在 CppCon 2022 上宣布,C++ 中的新官方 HelloWorld 现在是:
#include <print>
int main() {
std::print("Hello world\n");
return 0;
}
你知道吗,在 GCC 中可用?也许它需要一些标志或额外的库来激活?std::print
答:
2赞
Homer512
8/24/2023
#1
C++ 功能的状态通过其功能测试宏进行跟踪。cppreference.com 很有帮助地列出了这些。它们分别是 和 for 和 。__cpp_lib_print
__cpp_lib_format
print
format
然后,您可以在 GCC 中的 C++ 标准支持和 libstdc++ 的实现状态中搜索这些宏。现在,您会发现没有提到 while 已列出但未实现。所以答案是否定的。__cpp_lib_print
__cpp_lib_format
您可以使用 C++ 的功能测试工具检查自己的编译器。像 godbolt.org 这样的在线编译器是测试大多数主流编译器的快速方法。
评论
1赞
Vladlen
8/24/2023
使用在线编译器是个好主意。至少我不再考虑如何安装最新版本的 gcc。我浏览了编译器,发现只有 MSVC 支持 #include < print>,但它不允许使用 std::p rint() 或 std::p rintln()。看起来空的“打印”头文件被添加为“部分支持”。
1赞
Homer512
8/24/2023
@Vladlen 您可能还必须设置正确的标准版本。这将编译:godbolt.org/z/o6PYjb83Y
0赞
Sz.
8/29/2023
@Vladlen那个“部分支持”很搞笑!:)
1赞
knoxgon
8/24/2023
#2
不,这里是 GCC 和其他编译器中 C++23 的功能可用性列表。
评论
-std=c++23