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

Defines the types @code{char16_t}, @code{char32_t} and declares the
functions @code{mbrtoc16}, @code{c16rtomb}, @code{mbrtoc32},
@code{c32rtomb}.

Gnulib module: uchar or uchar-c23

Portability problems fixed by either Gnulib module @code{uchar} or @code{uchar-c23}:
@itemize
@item
This header file is missing on many non-glibc platforms:
glibc 2.15, macOS 11.1, FreeBSD 6.4, NetBSD 9.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin, mingw, MSVC 9.
@item
This file is not self-contained on some platforms:
@c https://dev.haiku-os.org/ticket/17040
Haiku.
@item
This file produces compilation errors in C++ mode on some platforms:
AIX 7.2 with xlclang++.
@end itemize

Portability problems fixed by Gnulib module @code{uchar-c23}:
@itemize
@item
@code{char32_t} values may not be Unicode code points.
This is the case in ISO C 11 compliant but not ISO C 23 compliant
implementations.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@end itemize
