C++如何比较atomic_ints
C++ how to compare atomic_ints?
我的目标系统有g++4.6.3,它支持C++0x(但不支持C++11)。我使用atomic_int来存储我在两个线程之间访问的状态变量。然而,似乎没有为这种类型定义一个不等于运算符。如何比较atomic_ints?
由于atomic_int
的转换运算符,您应该能够直接比较它们。如果这不起作用,那么你只需要找到一个编译器特定的解决方案。如果您显式强制转换它们,或者使用load()
成员函数或atomic_load()
非成员函数,它可能会起作用:
static_cast<int>(a) == static_cast<int>(b)
a.load() == b.load()
atomic_load(&a) == atomic_load(&b)
你应该注意,这不是任何形式的原子比较,所以确保你没有试图用这个比较做一些你不应该做的事情。
相关文章:
- 如何从 std::atomic 中提取指针 T<T>?
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- std::memory_order for std::atomic:<T>:wait
- MESI协议和std::atomic-它是否确保所有写入立即对其他线程可见?
- 在 lambda 表达式中使用 std::atomic
- C++std::atomic在程序员级别保证了什么
- 如果在 2 个线程中使用,是否值得将size_t声明为 std::atomic?
- MyType 允许 std::atomic 的确切要求是什么<MyType>?
- 无法将类型"T&"的非常量左值引用绑定到类型"T"的右值 t++ std::atomic<T>
- gcc Atomic在gcc 4.1.1中内置了奇怪的行为
- 在 C++20 之前和之后初始化 std::atomic
- Red Hat:使用<atomic>编译很好,但链接器找不到__atomic_store_16;什么库?
- std::atomic 和 std::mutex 的相对性能
- 使用用户定义的类型 UDT 实例化 std::atomic<>。如果 UDT 具有虚函数,则 l 墨水将失败。为什么?
- 简单使用 std::atomic 在两个线程之间共享数据
- Port pthread_cond_broadcast to std::atomic
- std::atomic中的任何内容都是免费等待的
- 对于 CPU 无法原子操作的类型,std::atomic 有什么意义?
- 在 atomic() 中 ++、add operation 和 fetch_add() 有什么区别
- 最接近"std::atomic<std::vector>"是什么?