C++ 增加原子浮点数

C++ Increase Atomic Float

我有一个 std::atomic<float>,我想增加一个特定的值。但是,在 atomic<float> 上使用 fetch_add() 不会编译并且似乎不允许。无论如何我可以解决这个问题吗?这是我试过的代码片段:

std::atomic<float> data(0);
void do_work(){ data.fetch_add(1); }

我得到的错误是 fetch_add 不是 atomic<float>

的成员

编辑:忘记澄清我正在使用 -std=c++2a

使用 g++ 版本 9.3.0 进行编译

仅 g++ 10.1 及更高版本中的 C++ 库支持浮点原子。请参阅 https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html 并搜索 P0020R6

您的代码在 g++ 10.2 下编译良好:Try on godbolt