Namespaces
Variants

ATOMIC_*_LOCK_FREE

From cppreference.net
헤더 파일에 정의됨 <stdatomic.h>
#define ATOMIC_BOOL_LOCK_FREE     /* implementation-defined */

#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 */

#define ATOMIC_POINTER_LOCK_FREE  /* implementation-defined */
(C11부터)
#define ATOMIC_CHAR8_T_LOCK_FREE  /* implementation-defined */
(C23부터)

해당 전처리기 상수 표현식 으로 확장되어 0 , 1 , 또는 2 값으로 평가되며, 이는 해당 atomic 타입 (부호 있는 타입과 부호 없는 타입 모두)의 lock-free 속성을 나타냅니다.

설명
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 atomic lock-free 매크로 (p: 273)