我已经构建了 GCC 13.2.0,我相信它对 c++23 有很好的支持。
我正在尝试编译一些使用 c++23 std::generator 的代码。
例如:https://en.cppreference.com/w/cpp/coroutine/generator
c++23 应该有生成器头:https://en.cppreference.com/w/cpp/coroutine/generator
#include <generator>
但是,当我用 g++ 编译它时,出现以下错误:
$ ~/opt/gcc/13.2.0/bin/g++ -Wall -std=c++23 generator.cpp -o generator
generator.cpp:3:10: fatal error: generator: No such file or directory
1 | #include <generator>
| ^~~~~~~~~~~
compilation terminated.
我的猜测是 13.2.0 尚不支持此功能,但我正在努力确认该猜测。我的问题是,哪个版本的 GCC 支持此功能?
我查看了这个页面: https://gcc.gnu.org/projects/cxx-status.html 但没有什么可以告诉我答案。
我还查看了此页面: https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2023
感谢HolyBlackCat,我找到了答案是GCC 14。
在撰写本文时,14 尚未准备好发布,但在 gcc 网站上浏览了一下,我发现这个页面似乎证实了这一点: https://gcc.gnu.org/gcc-14/changes.html
改进了对 C++23 的实验支持,包括:
...
用于从协程获取结果的 std::generator 视图。
...