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.

4247. Header <stdbit.h> is not yet freestanding

Section: 22.12 [stdbit.h.syn] Status: New Submitter: Jiang An Opened: 2025-04-24 Last modified: 2025-04-27

Priority: Not Prioritized

View all issues with New status.

Discussion:

Per C23/WG14 N3220 4 p7, <stdbit.h> is freestanding in C23, but C++ hasn't required it for a freestanding implementation. LWG 4049(i) is related but doesn't cover this, because there's no <cstdbit> standard header.

Proposed resolution:

This wording is relative to N5008.

  1. Modify Table 27 [tab:headers.cpp.fs] as indicated:

    Table 27: C++ headers for freestanding implementations [tab:headers.cpp.fs]
    Subclause Header
    […]
    22.11 [bit] Bit manipulation <bit>
    22.12 [stdbit.h.syn] C-compatible bit manipulation <stdbit.h>
    23.3.3 [array] Class template array <array>
    […]
  2. Modify 22.12 [stdbit.h.syn], header <stdbit.h> synopsis, as indicated:

    // all freestanding
    #define __STDC_VERSION_STDBIT_H__ 202311L
    
    #define __STDC_ENDIAN_BIG__    see below
    #define __STDC_ENDIAN_LITTLE__ see below
    #define __STDC_ENDIAN_NATIVE__ see below
    
    […]