Namespaces
Variants

ATOMIC_*_LOCK_FREE

From cppreference.net
Definiert in Header <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 */
(seit C11)
#define ATOMIC_CHAR8_T_LOCK_FREE  /* implementation-defined */
(seit C23)

Erweitert sich zu Präprozessor-Konstantenausdrücken , die entweder 0 , 1 , oder 2 ergeben und die Lock-Free-Eigenschaft der entsprechenden atomaren Typen (sowohl vorzeichenbehaftet als auch vorzeichenlos) anzeigen.

Wert Erklärung
0 Der atomare Typ ist niemals lock-free
1 Der atomare Typ ist manchmal lock-free
2 Der atomare Typ ist immer lock-free

Referenzen

  • C17-Standard (ISO/IEC 9899:2018):
  • 7.17.1/3 atomare lock-free Makros (S: 200)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.17.1/3 atomare lock-free Makros (S: 273)