AppleClang 15:“std::atomic<float>”中没有名为“fetch_add”的成员

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

我有一个 C++20 程序,可以在 Ubuntu 20 中使用 GCC 10 或在 Visual Studio 2019 中成功构建。现在我需要为 macOS 13.7.2 x64 编译它(目前可在 GitHub 托管的运行器上使用) ,它拥有 AppleClang 15 编译器。

程序使用

std::atomic<float>
数据类型,并对其进行
fetch_add
操作,如示例所示:

#include <atomic>

int main() {
    std::atomic<float> a{0};
    a.fetch_add(1);
}

不幸的是,它无法在 AppleClang 15 中使用

进行编译

错误:“std::atomic”中没有名为“fetch_add”的成员

在线演示:https://gcc.godbolt.org/z/8WvGrczq7

我想在程序中保留

std::atomic<float>
数据类型(以最小化更改),但用其他可用的东西替换
fetch_add
(可能性能较差)。对于带有
libc++
的旧 Clangs 有这样的解决方法吗?

c++ c++20 atomic clang++ libc++
1个回答
1
投票

C++20libc++ 状态页面显示P0019(添加

std::fetch_add
的论文)已针对 clang 19 实现。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.