Namespaces
Variants
Actions

Talk:c/23

From cppreference.com

[edit] C23 TOC

It could be helpful for filling the references section.

Per N3220 – the first post-C23 draft.

1 Scope                                                                        1
2 Normative references                                                         2
3 Terms, definitions, and symbols                                              3
4 Conformance                                                                  9
5 Environment                                                                 11
5.1 Conceptual models                                                         11
5.1.1 Translation environment                                                 11
5.1.2 Execution environments                                                  12
5.2 Environmental considerations                                              19
5.2.1 Character sets                                                          19
5.2.2 Multibyte characters                                                    20
5.2.3 Character display semantics                                             21
5.2.4 Signals and interrupts                                                  21
5.2.5 Environmental limits                                                    21
6 Language                                                                    35
6.1 Notation                                                                  35
6.2 Concepts                                                                  35
6.2.1 Scopes of identifiers, type names, and compound literals                35
6.2.2 Linkages of identifiers                                                 36
6.2.3 Name spaces of identifiers                                              37
6.2.4 Storage durations of objects                                            37
6.2.5 Types                                                                   38
6.2.6 Representations of types                                                42
6.2.7 Compatible type and composite type                                      43
6.2.8 Alignment of objects                                                    45
6.2.9 Encodings                                                               45
6.3 Conversions                                                               46
6.3.1 Arithmetic operands                                                     46
6.3.2 Other operands                                                          49
6.4 Lexical elements                                                          52
6.4.1 Keywords                                                                53
6.4.2 Identifiers                                                             54
6.4.3 Universal character names                                               56
6.4.4 Constants                                                               57
6.4.5 String literals                                                         67
6.4.6 Punctuators                                                             68
6.4.7 Header names                                                            69
6.4.8 Preprocessing numbers                                                   70
6.4.9 Comments                                                                70
6.5 Expressions                                                               72
6.5.1 General                                                                 72
6.5.2 Primary expressions                                                     73
6.5.3 Postfix operators                                                       74
6.5.4 Unary operators                                                         81
6.5.5 Cast operators                                                          83
6.5.6 Multiplicative operators                                                84
6.5.7 Additive operators                                                      84
6.5.8 Bitwise shift operators                                                 86
6.5.9 Relational operators                                                    86
6.5.10 Equality operators                                                     87
6.5.11 Bitwise AND operator                                                   88
6.5.12 Bitwise exclusive OR operator                                          88
6.5.13 Bitwise inclusive OR operator                                          89
6.5.14 Logical AND operator                                                   89
6.5.15 Logical OR operator                                                    89
6.5.16 Conditional operator                                                   90
6.5.17 Assignment operators                                                   91
6.5.18 Comma operator                                                         94
6.6 Constant expressions                                                      95
6.7 Declarations                                                              97
6.7.1 General                                                                 97
6.7.2 Storage-class specifiers                                                98
6.7.3 Type specifiers                                                        103
6.7.4 Type qualifiers                                                        120
6.7.5 Function specifiers                                                    124
6.7.6 Alignment specifier                                                    125
6.7.7 Declarators                                                            126
6.7.8 Type names                                                             132
6.7.9 Type definitions                                                       133
6.7.10 Type inference                                                        134
6.7.11 Initialization                                                        136
6.7.12 Static assertions                                                     142
6.7.13 Attributes                                                            142
6.8 Statements and blocks                                                    152
6.8.1 General                                                                152
6.8.2 Labeled statements                                                     153
6.8.3 Compound statement                                                     153
6.8.4 Expression and null statements                                         153
6.8.5 Selection statements                                                   154
6.8.6 Iteration statements                                                   155
6.8.7 Jump statements                                                        156
6.9 External definitions                                                     159
6.9.1 General                                                                159
6.9.2 Function definitions                                                   159
6.9.3 External object definitions                                            161
6.10 Preprocessing directives                                                163
6.10.1 General                                                               163
6.10.2 Conditional inclusion                                                 166
6.10.3 Source file inclusion                                                 170
6.10.4 Binary resource inclusion                                             171
6.10.5 Macro replacement                                                     178
6.10.6 Line control                                                          185
6.10.7 Diagnostic directives                                                 186
6.10.8 Pragma directive                                                      186
6.10.9 Null directive                                                        187
6.10.10 Predefined macro names                                               187
6.10.11 Pragma operator                                                      189
6.11 Future language directions                                              190
6.11.1 Floating types                                                        190
6.11.2 Linkages of identifiers                                               190
6.11.3 External names                                                        190
6.11.4 Character escape sequences                                            190
6.11.5 Storage-class specifiers                                              190
6.11.6 Pragma directives                                                     190
6.11.7 Predefined macro names                                                190
7 Library                                                                    191
7.1 Introduction                                                             191
7.1.1 Definitions of terms                                                   191
7.1.2 Standard headers                                                       191
7.1.3 Reserved identifiers                                                   192
7.1.4 Use of library functions                                               193
7.2 Diagnostics <assert.h>                                                   195
7.2.1 General                                                                195
7.2.2 Program diagnostics                                                    195
7.3 Complex arithmetic <complex.h>                                           196
7.3.1 Introduction                                                           196
7.3.2 Conventions                                                            196
7.3.3 Branch cuts                                                            197
7.3.4 The CX_LIMITED_RANGE pragma                                            197
7.3.5 Trigonometric functions                                                197
7.3.6 Hyperbolic functions                                                   199
7.3.7 Exponential and logarithmic functions                                  200
7.3.8 Power and absolute-value functions                                     201
7.3.9 Manipulation functions                                                 202
7.4 Character handling <ctype.h>                                             205
7.4.1 General                                                                205
7.4.2 Character classification functions                                     205
7.4.3 Character case mapping functions                                       207
7.5 Errors <errno.h>                                                         209
7.6 Floating-point environment <fenv.h>                                      210
7.6.1 The FENV_ACCESS pragma                                                 212
7.6.2 The FENV_ROUND pragma                                                  213
7.6.3 The FENV_DEC_ROUND pragma                                              214
7.6.4 Floating-point exceptions                                              215
7.6.5 Rounding and other control modes                                       218
7.6.6 Environment                                                            220
7.7 Characteristics of floating types <float.h>                              222
7.8 Format conversion of integer types <inttypes.h>                          223
7.8.1 Macros for format specifiers                                           223
7.8.2 Functions for greatest-width integer types                             224
7.9 Alternative spellings <iso646.h>                                         226
7.10 Characteristics of integer types <limits.h>                             227
7.11 Localization <locale.h>                                                 228
7.11.1 Locale control                                                        228
7.11.2 Numeric formatting convention inquiry                                 229
7.12 Mathematics <math.h>                                                    234
7.12.1 Treatment of error conditions                                         237
7.12.2 The FP_CONTRACT pragma                                                238
7.12.3 Classification macros                                                 238
7.12.4 Trigonometric functions                                               241
7.12.5 Hyperbolic functions                                                  246
7.12.6 Exponential and logarithmic functions                                 248
7.12.7 Power and absolute-value functions                                    256
7.12.8 Error and gamma functions                                             259
7.12.9 Nearest integer functions                                             261
7.12.10 Remainder functions                                                  265
7.12.11 Manipulation functions                                               266
7.12.12 Maximum, minimum, and positive difference functions                  269
7.12.13 Fused multiply-add                                                   274
7.12.14 Functions that round result to narrower type                         274
7.12.15 Quantum and quantum exponent functions                               276
7.12.16 Decimal re-encoding functions                                        278
7.12.17 Comparison macros                                                    280
7.13 Non-local jumps <setjmp.h>                                              283
7.13.1 Save calling environment                                              283
7.13.2 Restore calling environment                                           283
7.14 Signal handling <signal.h>                                              285
7.14.1 Specify signal handling                                               285
7.14.2 Send signal                                                           286
7.15 Alignment <stdalign.h>                                                  288
7.16 Variable arguments <stdarg.h>                                           289
7.16.1 Variable argument list access macros                                  289
7.17 Atomics <stdatomic.h>                                                   293
7.17.1 Introduction                                                          293
7.17.2 Initialization                                                        294
7.17.3 Order and consistency                                                 294
7.17.4 Fences                                                                297
7.17.5 Lock-free property                                                    298
7.17.6 Atomic integer types                                                  298
7.17.7 Operations on atomic types                                            299
7.17.8 Atomic flag type and operations                                       302
7.18 Bit and byte utilities <stdbit.h>                                       304
7.18.1 General                                                               304
7.18.2 Endian                                                                304
7.18.3 Count Leading Zeros                                                   305
7.18.4 Count Leading Ones                                                    305
7.18.5 Count Trailing Zeros                                                  305
7.18.6 Count Trailing Ones                                                   306
7.18.7 First Leading Zero                                                    306
7.18.8 First Leading One                                                     307
7.18.9 First Trailing Zero                                                   307
7.18.10 First Trailing One                                                   308
7.18.11 Count Zeros                                                          309
7.18.12 Count Ones                                                           309
7.18.13 Single-bit Check                                                     309
7.18.14 Bit Width                                                            310
7.18.15 Bit Floor                                                            310
7.18.16 Bit Ceiling                                                          311
7.19 Boolean type and values <stdbool.h>                                     312
7.20 Checked Integer Arithmetic <stdckdint.h>                                313
7.20.1 Checked Integer Operation Type-generic Macros                         313
7.21 Common definitions <stddef.h>                                           314
7.21.1 The unreachable macro                                                 315
7.21.2 The nullptr_t type                                                    315
7.22 Integer types <stdint.h>                                                317
7.22.1 Integer types                                                         317
7.22.2 Widths of specified-width integer types                               319
7.22.3 Width of other integer types                                          319
7.22.4 Macros for integer constants                                          320
7.22.5 Maximal and minimal values of integer types                           320
7.23 Input/output <stdio.h>                                                  321
7.23.1 Introduction                                                          321
7.23.2 Streams                                                               323
7.23.3 Files                                                                 324
7.23.4 Operations on files                                                   325
7.23.5 File access functions                                                 327
7.23.6 Formatted input/output functions                                      330
7.23.7 Character input/output functions                                      348
7.23.8 Direct input/output functions                                         351
7.23.9 File positioning functions                                            352
7.23.10 Error-handling functions                                             354
7.24 General utilities <stdlib.h>                                            356
7.24.1 Numeric conversion functions                                          356
7.24.2 Pseudo-random sequence generation functions                           363
7.24.3 Memory management functions                                           364
7.24.4 Communication with the environment                                    367
7.24.5 Searching and sorting utilities                                       370
7.24.6 Integer arithmetic functions                                          371
7.24.7 Multibyte/wide character conversion functions                         372
7.24.8 Multibyte/wide string conversion functions                            373
7.24.9 Alignment of memory                                                   374
7.25 _Noreturn <stdnoreturn.h>                                               375
7.26 String handling <string.h>                                              376
7.26.1 String function conventions                                           376
7.26.2 Copying functions                                                     376
7.26.3 Concatenation functions                                               378
7.26.4 Comparison functions                                                  379
7.26.5 Search functions                                                      380
7.26.6 Miscellaneous functions                                               383
7.27 Type-generic math <tgmath.h>                                            385
7.28 Threads <threads.h>                                                     390
7.28.1 Introduction                                                          390
7.28.2 Initialization functions                                              391
7.28.3 Condition variable functions                                          391
7.28.4 Mutex functions                                                       393
7.28.5 Thread functions                                                      395
7.28.6 Thread-specific storage functions                                     397
7.29 Date and time <time.h>                                                  400
7.29.1 Components of time                                                    400
7.29.2 Time manipulation functions                                           401
7.29.3 Time conversion functions                                             404
7.30 Unicode utilities <uchar.h>                                             410
7.30.1 Restartable multibyte/wide character conversion functions             410
7.31 Extended multibyte and wide character utilities <wchar.h>               415
7.31.1 Introduction                                                          415
7.31.2 Formatted wide character input/output functions                       416
7.31.3 Wide character input/output functions                                 429
7.31.4 General wide string utilities                                         433
7.31.4.1 Wide string numeric conversion functions                            433
7.31.4.2 Wide string copying functions                                       438
7.31.4.3 Wide string concatenation functions                                 439
7.31.4.4 Wide string comparison functions                                    439
7.31.4.5 Wide string search functions                                        441
7.31.4.6 Miscellaneous functions                                             445
7.31.5 Wide character time conversion functions                              445
7.31.6 Extended multibyte/wide character conversion utilities                446
7.31.6.1 Single-byte/wide character conversion functions                     446
7.31.6.2 Conversion state functions                                          446
7.31.6.3 Restartable multibyte/wide character conversion functions           447
7.31.6.4 Restartable multibyte/wide string conversion functions              448
7.32 Wide character classification and mapping utilities <wctype.h>          451
7.32.1 Introduction                                                          451
7.32.2 Wide character classification utilities                               451
7.32.2.1 Wide character classification functions                             451
7.32.2.2 Extensible wide character classification functions                  454
7.32.3 Wide character case mapping utilities                                 455
7.32.3.1 Wide character case mapping functions                               455
7.32.3.2 Extensible wide character case mapping functions                    455
7.33 Future library directions                                               457
7.33.1 Complex arithmetic <complex.h>                                        457
7.33.2 Character handling <ctype.h>                                          457
7.33.3 Errors <errno.h>                                                      457
7.33.4 Floating-point environment <fenv.h>                                   457
7.33.5 Characteristics of floating types <float.h>                           457
7.33.6 Format conversion of integer types <inttypes.h>                       457
7.33.7 Localization <locale.h>                                               457
7.33.8 Mathematics <math.h>                                                  457
7.33.9 Signal handling <signal.h>                                            458
7.33.10 Atomics <stdatomic.h>                                                458
7.33.11 Boolean type and values <stdbool.h>                                  458
7.33.12 Bit and byte utilities <stdbit.h>                                    458
7.33.13 Checked Arithmetic Functions <stdckdint.h>                           458
7.33.14 Integer types <stdint.h>                                             458
7.33.15 Input/output <stdio.h>                                               458
7.33.16 General utilities <stdlib.h>                                         458
7.33.17 String handling <string.h>                                           459
7.33.18 Date and time <time.h>                                               459
7.33.19 Threads <threads.h>                                                  459
7.33.20 Extended multibyte and wide character utilities <wchar.h>            459
7.33.21 Wide character classification and mapping utilities <wctype.h>       459