识别 MacOS 中的 std::execution::par C++ 功能

问题描述 投票:0回答:1
有人有机会让 macOS Sonoma 14.5 (M3 Macbook) 上的 C++ IDE 识别

std::execution::par

#include <execution>
 吗?

我想要的是简单地编译这段代码:

std::transform( std::execution::par, input.begin() + start, input.begin() + end, output.begin() + start, [](float x) { return pow(x, 2); } );
值得注意的是,我可以使用 

C++17 语言标准在 Microsoft Windows 10 和 11 上的 Visual Studio Community Edition 上轻松编译

但是,当我在 Xcode 或 CLion 或 VS Code 上选择

相同标准时,这些 IDE 无法识别和构建该代码部分。

我在 MacOS 的不同 IDE 中尝试过的内容:

  1. Xcode xcode settings
    xcode result
  2. CLion试用 CMake 设置被设置为处理 C++17 标准,但仍然无助于产生相同的错误:

    clion settings
  3. VS Code(不是 Visual Studio Community!)将类似的设置打包到 json 文件中,但仍然出现相同的错误:
    vs code settings
macos c++17
1个回答
0
投票
根据

此表,Apple 的默认 C++ 编译器 clang 似乎具有 部分支持 C++17 功能

使其实际使用

std::execution::par 功能编译代码的正确方法是附加 -fexperimental-library 标志,如下所示:

clang++ main.cpp -std=c++17 -stdlib=libc++ -fexperimental-library
有关未记录但强制的编译规则的解决方案是在 

llvm-projectissue #65125 中建立的,感谢 Nikolas Klauser

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