Talk:C23 (C standard revision)
This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||||||||||||
|
timegm() function
"ISO/IEC 9899:2023 (E) working draft — April 1, 2023" implies `timegm()` is new. Perhaps add that to this wiki too. 2601:441:8002:C00:887D:3B67:CDBB:FE8B (talk) 18:09, 9 June 2023 (UTC)
- Done • Sbmeirow • Talk • 23:44, 9 June 2023 (UTC)
Move hidden comment to talk page
NOTE: moved long hidden comment from article to talk page. Editors need to remove from this list all items that are currently in the article, then compare remaining items against C23 Draft release to determine what this article is missing. I'm guessing this list contains some proposed items that didn't make it into C23. • Sbmeirow • Talk • 00:13, 10 June 2023 (UTC) • Sbmeirow • Talk • 00:13, 10 June 2023 (UTC)
hide the following until references can be added
Type generic functions for performing checked integer arithmetic (Integer overflow).[citation needed] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2683.pdf ?
Pragmas for rounding direction: STDC FENV_ROUND
and STDC FENV_DEC_ROUND
.[citation needed]
atomic_char8_t type alias
ATOMIC_CHAR8_T_LOCK_FREE test macro
Seems regular binary floating point (IEEE-754), is actually optional! Not just for newer decimal:
Feature test macros for optional features
__STDC_IEC_60559_BFP__ Indicates IEEE-754 binary floating-point arithmetic and required math functions are supported. This macro supersedes __STDC_IEC_559__.
__STDC_IEC_60559_DFP__ Indicates IEEE-754 decimal floating-point arithmetic and required math functions are supported.
__STDC_IEC_60559_COMPLEX__ Indicates IEEE-754 complex arithmetic and required math functions are supported. This macro supersedes __STDC_IEC_55
Obsolete
Removed
Old-style function declarations and definitions
Representations for signed integers other than two's complement
Permission that u/U-prefixed character constants and string literals may be not UTF-16/32
Mixed wide string literal concatenation
Support for calling realloc() with zero size (the behavior becomes undefined)
__alignof_is_defined and __alignas_is_defined
Deprecated
Old feature-test macros
- __STDC_IEC_559__
- __STDC_IEC_559_COMPLEX__
_Noreturn function specifier
_Noreturn attribute token
asctime()
ctime()
DECIMAL_DIG
Definition of following numeric limit macros in <math.h> (they should be used via <limits.h>)
INFINITY
DEC_INFINITY
NAN
DEC_NAN
__bool_true_false_are_defined
New language features
- Decimal floating-point types (_Decimal32, _Decimal64, and _Decimal128)
- Bit-precise integers (_BitInt(N))
- Binary integer constants
- u8 character constants
- Type change of u8 string literals
- Digit separator '
- Empty initializer = {}
- Attributes: deprecated, fallthrough, maybe_unused, nodiscard, noreturn
- Unnamed parameters in function definitions
- Identical cvr-qualifications for array types and their element types
- Single-argument _Static_assert
- Labels followed by declarations and }
- nullptr constant and the associated nullptr_t type
- true and false become keywords (may be predefined macros for compatibility reasons)
- New preprocessor directives: #elifdef, #elifndef. #warning. #embed
- Pragmas for rounding direction: STDC FENV_ROUND, STDC FENV_DEC_ROUND
New library features
- Extended binary floating-point math functions
This section is incomplete
Reason: List TBD
Decimal floating-point math functions
-dN variants for existing and new floating-point math functions
quantizedN()
samequantumdN()
quantumdN()
llquantexpdN()
encodedecdN()
decodedecdN()
encodebindN()
decodebindN()
Floating-point formatting functions
POSIX functions
memccpy()
strdup()
strndup()
gmtime_r()
localtime_r()
Extensions for strftime() and wcsftime()
Extensions for fscanf() and fprintf() function families
wN and wfN length modifiers for [u]intN_t and [u]int_fastN_t respectively
H, D, and DD length modifiers for _Decimal32, _Decimal64, and _Decimal128 respectively
b conversion specifier for unsigned integer types
timespec_getres()
Macro constants for width of integer types
Additional numeric limit macros for floating-point types
Library version-test macros
__STDC_VERSION_FENV_H__
__STDC_VERSION_MATH_H__
__STDC_VERSION_STDINT_H__
__STDC_VERSION_STDLIB_H__
__STDC_VERSION_TGMATH_H__
__STDC_VERSION_TIME_H__ Obsolete
Removed
Old-style function declarations and definitions
Representations for signed integers other than two's complement
Permission that u/U-prefixed character constants and string literals may be not UTF-16/32
Mixed wide string literal concatenation
Support for calling realloc() with zero size (the behavior becomes undefined)
__alignof_is_defined and __alignas_is_defined
Deprecated
Old feature-test macros
__STDC_IEC_559__
__STDC_IEC_559_COMPLEX__
_Noreturn function specifier
_Noreturn attribute token
asctime()
ctime()
DECIMAL_DIG
Definition of following numeric limit macros in <math.h> (they should be used via <limits.h>)
INFINITY
DEC_INFINITY
NAN
DEC_NAN
__bool_true_false_are_defined
New language features
Decimal floating-point types (_Decimal32, _Decimal64, and _Decimal128)
Bit-precise integers (_BitInt(N))
Binary integer constants
u8 character constants
Type change of u8 string literals
Digit separator '
Empty initializer = {}
Attributes
Unnamed parameters in function definitions
Identical cvr-qualifications for array types and their element types
Single-argument _Static_assert
Labels followed by declarations and }
nullptr constant and the associated nullptr_t type
true and false become keywords (may be predefined macros for compatibility reasons)
New library features
Extended binary floating-point math functions
This section is incomplete
Reason: List TBD
Decimal floating-point math functions
-dN variants for existing and new floating-point math functions
quantizedN()
samequantumdN()
quantumdN()
llquantexpdN()
encodedecdN()
decodedecdN()
encodebindN()
decodebindN()
Floating-point formatting functions
Library support for UTF-8
char8_t type alias
mbrtoc8()
c8rtomb()
atomic_char8_t type alias
ATOMIC_CHAR8_T_LOCK_FREE test macro
POSIX functions
memccpy()
strdup()
strndup()
gmtime_r()
localtime_r()
Extensions for strftime() and wcsftime()
Extensions for fscanf() and fprintf() function families
wN and wfN length modifiers for [u]intN_t and [u]int_fastN_t respectively
H, D, and DD length modifiers for _Decimal32, _Decimal64, and _Decimal128 respectively
b conversion specifier for unsigned integer types
timespec_getres()
Macro constants for width of integer types
Additional numeric limit macros for floating-point types
Library version-test macros
__STDC_VERSION_FENV_H__
__STDC_VERSION_MATH_H__
__STDC_VERSION_STDINT_H__
__STDC_VERSION_STDLIB_H__
__STDC_VERSION_TGMATH_H__
__STDC_VERSION_TIME_H__
Draft standard renamed to "C2y"
In the June 2024 working draft, the draft language standard was renamed from "C23" to "C2y". 209.183.136.7 (talk) 21:13, 15 September 2024 (UTC)