@node stdbit.h
@section @file{stdbit.h}

POSIX :@* Not in POSIX yet, but we expect it will be.
ISO C23 (latest free draft
@url{https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf})
section 7.18.

Gnulib module: stdbit
@mindex stdbit

Portability problems fixed by Gnulib:
@itemize
@item
This header file is missing on many non-C23 platforms:
glibc 2.38, macOS 14, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
@item
This header file exists but is a no-op:
G++ 15.2.
@item
This header file has syntax errors in C++ mode on some platforms:
FreeBSD 15.1.
@item
This header file does not define the necessary types
with the Intel @code{icpx} C++ compiler.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
On older non-C23 platforms lacking @code{typeof} or equivalent, a call
to @code{stdc_bit_floor} and @code{stdc_bit_ceil} may yield a type
that is wider than its argument.  Although C23 seems to allow this,
it differs from GNU behavior.

@item
On non-C23 platforms, type-generic functions apply portably only to
the standard unsigned integer types specified by C17 or earlier.
@end itemize
