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
我有一个 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++ 10.1 及更高版本中的 C++ 库支持浮点原子。请参阅 https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html 并搜索 P0020R6
。
您的代码在 g++ 10.2 下编译良好:Try on godbolt