I have a C++20 program that can be successfully built in Ubuntu 20 with GCC 10 or in Visual Studio 2019. And now I need to compile it for macOS 13.7.2 x64 (currently available on GitHub-hosted runner), which possesses AppleClang 15 compiler.
The program uses std::atomic<float> data types, and fetch_add operation for them as in the example:
#include <atomic>
int main() {
std::atomic<float> a{0};
a.fetch_add(1);
}
Unfortunately, it fails to compile in AppleClang 15 with the
error: no member named 'fetch_add' in 'std::atomic'
Online demo: https://gcc.godbolt.org/z/8WvGrczq7
I would like to keep std::atomic<float> data types in the program (to minimize the changes), but replace fetch_add with something else available (probably less performant). Is there such workaround for old Clangs with libc++?