Namespaces
Variants

ATOMIC_*_LOCK_FREE

From cppreference.net
定义于头文件 <stdatomic.h>
#define ATOMIC_BOOL_LOCK_FREE /* 由实现定义 */

#define ATOMIC_CHAR_LOCK_FREE /* 由实现定义 */
#define ATOMIC_CHAR16_T_LOCK_FREE /* 由实现定义 */
#define ATOMIC_CHAR32_T_LOCK_FREE /* 由实现定义 */
#define ATOMIC_WCHAR_T_LOCK_FREE /* 由实现定义 */
#define ATOMIC_SHORT_LOCK_FREE /* 由实现定义 */
#define ATOMIC_INT_LOCK_FREE /* 由实现定义 */
#define ATOMIC_LONG_LOCK_FREE /* 由实现定义 */
#define ATOMIC_LLONG_LOCK_FREE /* 由实现定义 */

#define ATOMIC_POINTER_LOCK_FREE /* 由实现定义 */
(C11 起)
#define ATOMIC_CHAR8_T_LOCK_FREE /* 由实现定义 */
(C23 起)

扩展为 预处理器常量表达式 ,其求值结果可能为 0 1 2 ,用于指示相应 原子类型 (包括有符号和无符号版本)的无锁特性。

数值 说明
0 原子类型从不无锁
1 原子类型有时无锁
2 原子类型始终无锁

参考文献

  • C17 标准 (ISO/IEC 9899:2018):
  • 7.17.1/3 atomic lock-free 宏 (p: 200)
  • C11 标准 (ISO/IEC 9899:2011):
  • 7.17.1/3 原子无锁宏 (p: 273)