考虑以下最小完成:
#include <numeric>
int main() {
std::transform_reduce();
}
尝试使用GCC 7.2编译它会导致错误:
[bipll@home ~]$ g++ -std=c++17 omg.cpp
omg.cpp: In function ‘int main()’:
omg.cpp:4:7: error: ‘transform_reduce’ is not a member of ‘std’
std::transform_reduce();
^~~~~~~~~~~~~~~~
[bipll@home ~]$ g++ -v |& tail -1
gcc version 7.2.0 (GCC)
我试图找到与https://gcc.gnu.org/projects/cxx-status.html相关的内容,但它主要涵盖了语言功能,而且我还没有看到任何有关新STL定义支持的内容(有时这可以轻微自动化,例如检查{{1} },但#if __has_include(<execution>)
是一个旧的包含,我没有看到任何干净的方式来检查它是否包含特定的定义)。除了脚本解析STL标头之外,是否有关于当前草案中描述的内容是否已经实现的快速信息来源?什么时候可能会有什么?
答案 0 :(得分:2)
库(libstdc ++)支持记录在另一个页面上:
https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z
“Parallelism TS”仍标记为“No”,因此尚未实施。它也没有在Clang中实现。你可以在这里测试各种编译器: