gpt4 book ai didi

c++ - 多平台原子增量

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:14 25 4
gpt4 key购买 nike

直到 std::atomic可用,原子递增变量的多平台(Windows 和 Linux)方式是什么?

我目前使用boost::detail::atomic_count但它在boost::detail命名空间,我不知道它是否可以安全使用。

最佳答案

多平台,但特定于编译器的方法是使用 GCC 的 __sync_fetch_and_add

或者通过一些条件编译自己定义这样一个函数:

#ifdef __GNUC__
#define atomic_inc(ptr) __sync_fetch_and_add ((ptr), 1)
#elif defined (_WIN32)
#define atomic_inc(ptr) InterlockedIncrement ((ptr))
#else
#error "Need some more porting work here"
#endif

关于c++ - 多平台原子增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com