更详细的C ++ 17在GCC中的地位?

时间:2017-11-27 01:19:45

标签: c++ gcc

考虑以下最小完成:

#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标头之外,是否有关于当前草案中描述的内容是否已经实现的快速信息来源?什么时候可能会有什么?

1 个答案:

答案 0 :(得分:2)

库(libstdc ++)支持记录在另一个页面上:

https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z

“Parallelism TS”仍标记为“No”,因此尚未实施。它也没有在Clang中实现。你可以在这里测试各种编译器:

https://gcc.godbolt.org