Namespaces
Variants
Views
Actions

C23

From cppreference.com
< c

The next generation of the C standard.

See: The current WD of C23.

Contents

[edit] Obsolete

[edit] Removed

[edit] Deprecated

[edit] New language features

[edit] Feature test macros for optional features

[edit] New library features

[edit] New headers

  • <stdbit.h>
  • <stdckdint.h>

[edit] 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 16 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 13 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*
13
Partial* Partial* Partial* Partial*


typeof and typeof_unqual N2927 Partial*
13
Partial*
16
Partial* Partial* Partial* Partial*
New spelling of keywords N2934
Predefined true and false N2935
[[unsequenced]] and [[reproducible]] N2956
Relax requirements for variadic parameter list N2975 13
Type inference in object definitions N3007 13
constexpr objects N3008 13
nullptr N3042 13 16
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

[edit] C23 library features