This PR implements a part of WG14 N2653:
- Define C23 char8_t
- Define C11 char16_t
- Define C11 char32_t
Missing goals are:
- The type of UTF-8 character literals is changed from unsigned char to
char8_t. (Since UTF-8 character literals already have type unsigned
char, this is not a semantic change).
- New mbrtoc8() and c8rtomb() functions declared in <uchar.h> enable
conversions between multibyte characters and UTF-8.
- A new ATOMIC_CHAR8_T_LOCK_FREE macro.
- A new atomic_char8_t typedef name.
162 lines
2.1 KiB
ReStructuredText
162 lines
2.1 KiB
ReStructuredText
.. _c23_support:
|
|
|
|
===========
|
|
C23 Support
|
|
===========
|
|
|
|
.. include:: check.rst
|
|
.. contents:: Table of Contents
|
|
:depth: 4
|
|
:local:
|
|
|
|
---------------------
|
|
Implementation Status
|
|
---------------------
|
|
|
|
(It's helpful to review 'Annex B (Informative) Library Summary' for these.)
|
|
|
|
|
|
Additions:
|
|
|
|
* fenv.h
|
|
|
|
* fesetexcept |check|
|
|
* fetestexceptflag |check|
|
|
* fegetmode
|
|
* fesetmode
|
|
* math.h
|
|
|
|
* acospi*
|
|
* asinpi*
|
|
* atanpi*
|
|
* atan2pi*
|
|
* cospi*
|
|
* sinpi*
|
|
* tanpi*
|
|
* exp10*
|
|
* exp10m1*
|
|
* exp2m1*
|
|
* log10p1*
|
|
* logp1
|
|
* log2p1*
|
|
* rsqrt*
|
|
* __STDC_IEC_60559_DFP__ functions (_Decimal32, _Decimal64, _Decimal128)
|
|
* compoundn*
|
|
* totalorder*
|
|
* totalordermag*
|
|
* getpayload*
|
|
* setpayload*
|
|
* iscannonical
|
|
* issignaling
|
|
* issubnormal
|
|
* iszero
|
|
* llogb*
|
|
* pown*
|
|
* powr*
|
|
* rootn*
|
|
* roundeven* |check|
|
|
* fromfp*
|
|
* ufromfp*
|
|
* fromfpx*
|
|
* nextup*
|
|
* nextdown*
|
|
* canonicalize*
|
|
* fmaximum*
|
|
* fminimum*
|
|
* fmaximum_mag*
|
|
* fminimum_mag*
|
|
* fmaximum_mag_num*
|
|
* fminimum_mag_num*
|
|
* fadd*
|
|
* fsub*
|
|
* fmul*
|
|
* fdiv*
|
|
* ffma*
|
|
* dfmal
|
|
* fsqrt*
|
|
* dsqrtl
|
|
* stdbit.h (New header) |check|
|
|
* stdckdint.h (New header) |check|
|
|
* stddef.h
|
|
|
|
* unreachable
|
|
* stdlib.h
|
|
|
|
* strfromd
|
|
* strfromf
|
|
* strfroml
|
|
* free_sized
|
|
* free_aligned_sized
|
|
* memalignment
|
|
* string.h
|
|
|
|
* memset_explicit |check|
|
|
* memccpy
|
|
* strdup
|
|
* strndup
|
|
* tgmath.h
|
|
|
|
* acospi
|
|
* asinpi
|
|
* atan2pi
|
|
* atanpi
|
|
* compoundn
|
|
* cospi
|
|
* erf
|
|
* exp10m1
|
|
* exp10
|
|
* exp2m1
|
|
* fmaximum
|
|
* fmaximum_mag
|
|
* fmaximum_num
|
|
* fmaximum_mag_num
|
|
* fminimum
|
|
* fminimum_mag
|
|
* fminimum_num
|
|
* fminimum_mag_num
|
|
* fromfpx
|
|
* fromfp
|
|
* llogb
|
|
* log10p1
|
|
* log2p1
|
|
* logp1
|
|
* nextdown
|
|
* nextup
|
|
* pown
|
|
* powr
|
|
* rootn
|
|
* roundeven
|
|
* rsqrt
|
|
* scalbn
|
|
* sinpi
|
|
* tanpi
|
|
* ufromfpx
|
|
* ufromfp
|
|
* fadd
|
|
* dadd
|
|
* fsub
|
|
* dsub
|
|
* fmul
|
|
* dmul
|
|
* fdiv
|
|
* ddiv
|
|
* ffma
|
|
* dfma
|
|
* fsqrt
|
|
* dsqrt
|
|
* time.h
|
|
|
|
* gmtime_r
|
|
* localtime_r
|
|
* timegm
|
|
* timespec_getres
|
|
* strftime conversion specifiers
|
|
|
|
* 0b
|
|
* 0B
|
|
* uchar.h
|
|
|
|
* mbrtoc8
|
|
* c8rtomb
|
|
* char*_t |check|
|