我有一个 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 有这样的解决方法吗?