gpt4 book ai didi

c++ - 原子读/写值的静态断言

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

有没有办法检查一个值的读/写(加载/存储)是否是原子的?我有专门版本的并发容器,只能使用这些值,我想添加一个静态断言以防止意外误用。

对于 x86_64 上的所有基本类型都是如此,但它可能不适用于所有平台或所有 long 数据类型。此外,小型结构和 union 也有可能被分配原子操作(因为它们只是被编译为使用相同大小的基本复制操作)。

最佳答案

C++0x 草案在 header 中有一个包含宏的部分,这表明没有简单且可移植的方法来检查它。

29.4 Lock-free property [atomics.lockfree]

#define ATOMIC_CHAR_LOCK_FREE implementation-defined 
#define ATOMIC_CHAR16_T_LOCK_FREE implementation-defined
#define ATOMIC_CHAR32_T_LOCK_FREE implementation-defined
#define ATOMIC_WCHAR_T_LOCK_FREE implementation-defined
#define ATOMIC_SHORT_LOCK_FREE implementation-defined
#define ATOMIC_INT_LOCK_FREE implementation-defined
#define ATOMIC_LONG_LOCK_FREE implementation-defined
#define ATOMIC_LLONG_LOCK_FREE implementation-defined

宏指示可以在没有锁的情况下实现 std::atomic 的类型,这意味着它们本身是原子的。

关于c++ - 原子读/写值的静态断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5536895/

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