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

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/wchar.h.html}

Gnulib module: wchar-h
@mindex wchar-h

Portability problems fixed by Gnulib:
@itemize
@item
This header file cannot be included on some platforms:
Linux uClibc built without wide character support.
@item
The type @code{wint_t} is incorrect on some platforms:
mingw, MSVC 14.

@item
Some platforms provide a @code{NULL} macro that cannot be used in arbitrary
expressions:
NetBSD 5.0
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
In multibyte locales, @code{wchar_t} values need not be Unicode code points:
FreeBSD 15, NetBSD 10, AIX, Solaris.
@item
In single-byte locales, @code{wchar_t} values need not be Unicode code points:
FreeBSD 15, NetBSD 10, OpenBSD 7, macOS 26, Solaris, mingw, MSVC.
@item
@code{wchar_t} is only 16 bits, and so can represent only a
UTF-16 subset of Unicode when @code{wchar_t} values are Unicode code points:
32-bit AIX, mingw, MSVC.
@item
This header file leads to link errors and endless recursions or endless loops
on some platforms:
glibc version 2.5 or older, together with gcc version 4.3 or newer and the
option @samp{-std=c99} or @samp{-std=gnu99}.
@item
POSIX.1-2024 allows, but does not require, this file to make visible
all symbols from the headers @code{<ctype.h>}, @code{<stdarg.h>},
@code{<stddef.h>}, @code{<stdlib.h>}, @code{<stdio.h>},
@code{<string.h>}, and @code{<time.h>}.
Programs should not assume that these other symbols are visible merely
because this file is included, or that they are invisible because only
this file is included.
@end itemize
