当包含 <execution> 时,Coliru 无法编译

问题描述 投票:0回答:1

Coliru 无法编译下面列出的程序。请点击链接了解更多信息。
这是用来编译的命令

g++ -std=c++20 -DNDEBUG -O3 -ftree-向量化 -Wall -Wno-unknown-pragmas -fpermissive -pedantic -pthread main.cpp

我是否缺少一些编译标志?

错误是

usr/local/include/c++/12.1.0/pstl/parallel_backend_tbb.h:29:6:错误: #error 需要 Intel(R) Threading Building Blocks 2018;不支持旧版本。 29 | 29 # 英特尔(R) 线程错误 需要 Building Block 2018;不支持旧版本。

#include <iostream>
#include <algorithm>
#include <vector>
#include <execution>

int main()
{
    std::vector<int> intData {1, 22, 33,42, 57};
    std::vector<double> doubleData (intData.size ());
    
    std::transform (std::execution::par_unseq, intData.begin (), intData.end (), doubleData.begin (), [] (auto value){return static_cast<double> (value) / 2;});
    
    for (size_t ii = 0; ii < intData.size (); ++ii)
    {
        std::cout << intData[ii] << ", " << doubleData[ii] << "\n";
    }
    
    return 0;
}
g++ tbb coliru
1个回答
0
投票

我需要将 -ltbb 添加到 Coliru 的 g++ 命令!

© www.soinside.com 2019 - 2024. All rights reserved.