Namespaces
Variants

ATOMIC_*_LOCK_FREE

From cppreference.net
Défini dans l'en-tête <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 */
(depuis C11)
#define ATOMIC_CHAR8_T_LOCK_FREE  /* implementation-defined */
(depuis C23)

S'étend à des expressions constantes de préprocesseur qui évaluent à 0 , 1 , ou 2 indiquant la propriété sans verrouillage des types atomiques correspondants (signés et non signés).

Valeur Explication
0 Le type atomique n'est jamais sans verrou
1 Le type atomique est parfois sans verrou
2 Le type atomique est toujours sans verrou

Références

  • Norme C17 (ISO/CEI 9899:2018):
  • 7.17.1/3 macros atomiques sans verrouillage (p: 200)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.17.1/3 macros atomiques sans verrou (p: 273)