C++ 编译器支持 std::execution(并行 STL 算法)

Ral*_*alf 6 c++ std c++17

我想使用并行版本,std::sort我可以在其中指定执行策略,例如std::execution::par_unseq.

我目前正在 Ubuntu Linux 下使用clang++-10g++ 7.5.0,但是两者都没有找到所需的包含文件execution,因此显然这些编译器版本尚不支持并行算法。

有人可以告诉我哪个版本clang支持gcc此功能吗?

Fed*_*dor 4

GCC 10 和 Clang 11 支持 C++17 执行策略。

这是一个演示示例https://gcc.godbolt.org/z/xahs5x1Kx

#include <execution>

int main()
{
    int a[] = {2,1};
    std::sort(std::execution::par_unseq, std::begin(a), std::end(a) );
    return a[0];
}
Run Code Online (Sandbox Code Playgroud)

  • 多谢。我可以确认它受“g++-11.1”支持。在我们的例子中,还需要安装新版本的英特尔线程构建模块库 (TBB-2019),另请参阅 /sf/answers/3919291841/。 (2认同)