This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.

4480. <stdatomic.h> should provide ATOMIC_CHAR8_T_LOCK_FREE

Section: 32.5.12 [stdatomic.h.syn] Status: New Submitter: Jiang An Opened: 2025-11-21 Last modified: 2025-11-23

Priority: Not Prioritized

View all other issues in [stdatomic.h.syn].

View all issues with New status.

Discussion:

Currently, <stdatomic.h> is specified to provide atomic_char8_t but not its corresponding ATOMIC_CHAR8_T_LOCK_FREE macro, which is self-inconsistent. Also, given WG14 N2653 added ATOMIC_CHAR8_T_LOCK_FREE to C's <stdatomic.h> in C23, perhaps C++ should do the same thing in the spirit of P3348R4.

Proposed resolution:

This wording is relative to N5014.

  1. Modify 32.5.12 [stdatomic.h.syn], header <stdatomic.h> synopsis, as indicated:

    template<class T>
      using std-atomic = std::atomic<T>; // exposition only
    
    #define _Atomic(T) std-atomic<T>
    
    #define ATOMIC_BOOL_LOCK_FREE see below
    #define ATOMIC_CHAR_LOCK_FREE see below
    #define ATOMIC_CHAR8_T_LOCK_FREE see below
    #define ATOMIC_CHAR16_T_LOCK_FREE see below
    #define ATOMIC_CHAR32_T_LOCK_FREE see below
    #define ATOMIC_WCHAR_T_LOCK_FREE see below
    #define ATOMIC_SHORT_LOCK_FREE see below
    #define ATOMIC_INT_LOCK_FREE see below
    #define ATOMIC_LONG_LOCK_FREE see below
    #define ATOMIC_LLONG_LOCK_FREE see below
    #define ATOMIC_POINTER_LOCK_FREE see below
    
    […]