Namespaces
Variants
Views
Actions

C23

From cppreference.com
< c

The next generation of the C standard.

See: The current IS schedule for C23.

Contents

[edit] Obsolete

[edit] Removed

[edit] Deprecated

[edit] New language features

[edit] Feature test macros for optional features

[edit] New library features

[edit] Defect reports

Defect Reports fixed in C23 (? defects)

[edit] Compiler support

[edit] C23 core language features


C23 feature
 
Paper(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++
(ex Portland Group/PGI)
Nvidia nvcc
_Static_assert with no message N2265 9 9 Yes
[[nodiscard]] N2267 10 9 Yes
[[maybe_unused]] N2270 10 9 Yes
[[deprecated]] N2334 10 9 Yes
Attributes N2335
N2554
10 9 Yes
IEEE 754 decimal floating-point types N2341 4.2 (partial)* 13.0 (partial)*
[[fallthrough]] N2408 10 9 Yes
u8 character constants N2418 10 15
Removal of function definitions without prototype N2432 10 15
[[nodiscard]] with message N2448 11 10 Yes
Unnamed parameters in function definitions N2480 11 11 Yes
Labels before declarations and end of blocks N2508 11 Partial* 17.0*
Binary integer constants N2549 4.3*
11
2.9*
9
19.0 (2015)** Yes 11.0*
__has_c_attribute in preprocessor conditionals N2553 11 9 Yes
Allow duplicate attributes N2557 11 13 Yes
IEEE 754 interchange and extended types N2601 7 (partial)* 6 (partial)* Partial*
Digit separators N2626 12 13 19.0 (2015)** Yes 18.0*
#elifdef and #elifndef N2645 12 13

13.1.6*

Type change of u8 string literals N2653
[[maybe_unused]] for labels N2662 11
#warning N2686 Yes Yes Yes Yes Yes
Bit-precise integer types (_BitInt) N2763 15
[[noreturn]] N2764 15
Suffixes for bit-precise integer constants N2775 15
__has_include in preprocessor conditionals N2799 5 Yes 19.11* Yes 4.13 18.0
Removal of function declarations without prototype N2841 15


Empty initializers N2900 Partial* Partial* Partial* Partial* Partial*


typeof and typeof_unqual N2927 Partial* Partial* Partial* Partial* Partial* Partial*
Predefined true and false N2935
[[unsequenced]] and [[reproducible]] N2956
Relax requirements for variadic parameter list N2975
Type inference in object definitions N3007
constexpr objects N3008
nullptr N3042
C23 feature
 
Paper(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++
Nvidia nvcc

[edit] C23 library features