From Jason Turner

[cinttypes.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp44zjzcxn/{from.md → to.md} +38 -12
tmp/tmp44zjzcxn/{from.md → to.md} RENAMED
@@ -15,75 +15,89 @@ namespace std {
15
 
16
  constexpr intmax_t abs(intmax_t); // optional, see below
17
  constexpr imaxdiv_t div(intmax_t, intmax_t); // optional, see below
18
  }
19
 
 
 
20
  #define PRIdN see below
21
  #define PRIiN see below
22
  #define PRIoN see below
23
  #define PRIuN see below
24
  #define PRIxN see below
25
  #define PRIXN see below
 
 
26
  #define SCNdN see below
27
  #define SCNiN see below
28
  #define SCNoN see below
29
  #define SCNuN see below
30
  #define SCNxN see below
 
31
  #define PRIdLEASTN see below
32
  #define PRIiLEASTN see below
33
  #define PRIoLEASTN see below
34
  #define PRIuLEASTN see below
35
  #define PRIxLEASTN see below
36
  #define PRIXLEASTN see below
 
 
37
  #define SCNdLEASTN see below
38
  #define SCNiLEASTN see below
39
  #define SCNoLEASTN see below
40
  #define SCNuLEASTN see below
41
  #define SCNxLEASTN see below
 
42
  #define PRIdFASTN see below
43
  #define PRIiFASTN see below
44
  #define PRIoFASTN see below
45
  #define PRIuFASTN see below
46
  #define PRIxFASTN see below
47
  #define PRIXFASTN see below
 
 
48
  #define SCNdFASTN see below
49
  #define SCNiFASTN see below
50
  #define SCNoFASTN see below
51
  #define SCNuFASTN see below
52
  #define SCNxFASTN see below
 
53
  #define PRIdMAX see below
54
  #define PRIiMAX see below
55
  #define PRIoMAX see below
56
  #define PRIuMAX see below
57
  #define PRIxMAX see below
58
  #define PRIXMAX see below
 
 
59
  #define SCNdMAX see below
60
  #define SCNiMAX see below
61
  #define SCNoMAX see below
62
  #define SCNuMAX see below
63
  #define SCNxMAX see below
 
64
  #define PRIdPTR see below
65
  #define PRIiPTR see below
66
  #define PRIoPTR see below
67
  #define PRIuPTR see below
68
  #define PRIxPTR see below
69
  #define PRIXPTR see below
 
 
70
  #define SCNdPTR see below
71
  #define SCNiPTR see below
72
  #define SCNoPTR see below
73
  #define SCNuPTR see below
74
  #define SCNxPTR see below
 
75
  ```
76
 
77
  The contents and meaning of the header `<cinttypes>` are the same as the
78
  C standard library header `<inttypes.h>`, with the following changes:
79
 
80
  - The header `<cinttypes>` includes the header `<cstdint>` instead of
81
  `<stdint.h>`, and
82
- - `intmax_t` and `uintmax_t` are not required to be able to represent
83
- all values of extended integer types wider than `long long` and
84
- `unsigned long long`, respectively, and
85
  - if and only if the type `intmax_t` designates an extended integer type
86
  [[basic.fundamental]], the following function signatures are added:
87
  ``` cpp
88
  constexpr intmax_t abs(intmax_t);
89
  constexpr imaxdiv_t div(intmax_t, intmax_t);
@@ -98,11 +112,13 @@ See also: ISO C 7.8
98
  Each of the `PRI` macros listed in this subclause is defined if and only
99
  if the implementation defines the corresponding *typedef-name* in 
100
  [[cstdint.syn]]. Each of the `SCN` macros listed in this subclause is
101
  defined if and only if the implementation defines the corresponding
102
  *typedef-name* in  [[cstdint.syn]] and has a suitable `fscanf` length
103
- modifier for the type.
 
 
104
 
105
  <!-- Link reference definitions -->
106
  [adjustfield.manip]: #adjustfield.manip
107
  [allocator.requirements.general]: library.md#allocator.requirements.general
108
  [basefield.manip]: #basefield.manip
@@ -117,22 +133,24 @@ modifier for the type.
117
  [c.files]: #c.files
118
  [char.traits]: strings.md#char.traits
119
  [char.traits.specializations]: strings.md#char.traits.specializations
120
  [character.seq]: library.md#character.seq
121
  [cinttypes.syn]: #cinttypes.syn
122
- [container.requirements.general]: containers.md#container.requirements.general
123
  [cpp17.copyassignable]: #cpp17.copyassignable
124
  [cpp17.copyconstructible]: #cpp17.copyconstructible
125
  [cpp17.defaultconstructible]: #cpp17.defaultconstructible
126
  [cpp17.destructible]: #cpp17.destructible
127
  [cpp17.equalitycomparable]: #cpp17.equalitycomparable
128
  [cstdint.syn]: support.md#cstdint.syn
129
  [cstdio.syn]: #cstdio.syn
 
130
  [defns.ntcts]: intro.md#defns.ntcts
131
  [enumerated.types]: library.md#enumerated.types
132
  [error.reporting]: #error.reporting
133
  [ext.manip]: #ext.manip
 
134
  [file.streams]: #file.streams
135
  [filebuf]: #filebuf
136
  [filebuf.assign]: #filebuf.assign
137
  [filebuf.cons]: #filebuf.cons
138
  [filebuf.general]: #filebuf.general
@@ -142,12 +160,16 @@ modifier for the type.
142
  [filebuf.virtuals]: #filebuf.virtuals
143
  [filesystems]: #filesystems
144
  [floatfield.manip]: #floatfield.manip
145
  [fmtflags.manip]: #fmtflags.manip
146
  [fmtflags.state]: #fmtflags.state
147
- [format.err.report]: utilities.md#format.err.report
 
 
 
148
  [fpos]: #fpos
 
149
  [fpos.members]: #fpos.members
150
  [fpos.operations]: #fpos.operations
151
  [fs.class.directory.entry]: #fs.class.directory.entry
152
  [fs.class.directory.entry.general]: #fs.class.directory.entry.general
153
  [fs.class.directory.iterator]: #fs.class.directory.iterator
@@ -231,10 +253,13 @@ modifier for the type.
231
  [fs.path.concat]: #fs.path.concat
232
  [fs.path.construct]: #fs.path.construct
233
  [fs.path.cvt]: #fs.path.cvt
234
  [fs.path.decompose]: #fs.path.decompose
235
  [fs.path.fmt.cvt]: #fs.path.fmt.cvt
 
 
 
236
  [fs.path.gen]: #fs.path.gen
237
  [fs.path.generic]: #fs.path.generic
238
  [fs.path.generic.obs]: #fs.path.generic.obs
239
  [fs.path.hash]: #fs.path.hash
240
  [fs.path.io]: #fs.path.io
@@ -264,10 +289,11 @@ modifier for the type.
264
  [input.iterators]: iterators.md#input.iterators
265
  [input.output]: #input.output
266
  [input.output.general]: #input.output.general
267
  [input.streams]: #input.streams
268
  [input.streams.general]: #input.streams.general
 
269
  [intro.multithread]: basic.md#intro.multithread
270
  [intro.races]: basic.md#intro.races
271
  [iomanip.syn]: #iomanip.syn
272
  [ios]: #ios
273
  [ios.base]: #ios.base
@@ -328,12 +354,12 @@ modifier for the type.
328
  [istringstream.cons]: #istringstream.cons
329
  [istringstream.general]: #istringstream.general
330
  [istringstream.members]: #istringstream.members
331
  [istringstream.swap]: #istringstream.swap
332
  [lex.charset]: lex.md#lex.charset
333
- [locale.codecvt.virtuals]: localization.md#locale.codecvt.virtuals
334
- [locale.num.get]: localization.md#locale.num.get
335
  [namespace.std]: library.md#namespace.std
336
  [narrow.stream.objects]: #narrow.stream.objects
337
  [numeric.limits]: support.md#numeric.limits
338
  [ofstream]: #ofstream
339
  [ofstream.cons]: #ofstream.cons
@@ -448,12 +474,12 @@ modifier for the type.
448
  [views.span]: containers.md#views.span
449
  [wide.stream.objects]: #wide.stream.objects
450
 
451
  [^1]: Typically `long long`.
452
 
453
- [^2]: Most places where `streamsize` is used would use `size_t` in ISO
454
- C, or `ssize_t` in POSIX.
455
 
456
  [^3]: It is the implementation’s responsibility to implement headers so
457
  that including `<iosfwd>` and other headers does not violate the
458
  rules about multiple occurrences of default arguments.
459
 
@@ -465,11 +491,11 @@ modifier for the type.
465
  mixed arbitrarily with operations on the corresponding stdio stream.
466
  In practical terms, synchronization usually means that a standard
467
  iostream object and a standard stdio object share a buffer.
468
 
469
  [^6]: An implementation is free to implement both the integer array
470
- pointed at by `iarray` and the pointer array pointed at by `parray`
471
  as sparse data structures, possibly with a one-element cache for
472
  each.
473
 
474
  [^7]: For example, because it cannot allocate space.
475
 
@@ -502,11 +528,11 @@ modifier for the type.
502
  ways to implement `xsgetn()` and `xsputn()` by overriding these
503
  definitions from the base class.
504
 
505
  [^16]: That is, for each class derived from a specialization of
506
  `basic_streambuf` in this Clause [[stringbuf]], [[filebuf]],
507
- a specification of how consuming a character effects the associated
508
  output sequence is given. There is no requirement on a
509
  program-defined class.
510
 
511
  [^17]: Typically, `overflow` returns `c` to indicate success, except
512
  when `traits::eq_int_type(c, traits::eof())` returns `true`, in
 
15
 
16
  constexpr intmax_t abs(intmax_t); // optional, see below
17
  constexpr imaxdiv_t div(intmax_t, intmax_t); // optional, see below
18
  }
19
 
20
+ #define __STDC_VERSION_INTTYPES_H__ 202311L
21
+
22
  #define PRIdN see below
23
  #define PRIiN see below
24
  #define PRIoN see below
25
  #define PRIuN see below
26
  #define PRIxN see below
27
  #define PRIXN see below
28
+ #define PRIbN see below
29
+ #define PRIBN see below
30
  #define SCNdN see below
31
  #define SCNiN see below
32
  #define SCNoN see below
33
  #define SCNuN see below
34
  #define SCNxN see below
35
+ #define SCNbN see below
36
  #define PRIdLEASTN see below
37
  #define PRIiLEASTN see below
38
  #define PRIoLEASTN see below
39
  #define PRIuLEASTN see below
40
  #define PRIxLEASTN see below
41
  #define PRIXLEASTN see below
42
+ #define PRIbLEASTN see below
43
+ #define PRIBLEASTN see below
44
  #define SCNdLEASTN see below
45
  #define SCNiLEASTN see below
46
  #define SCNoLEASTN see below
47
  #define SCNuLEASTN see below
48
  #define SCNxLEASTN see below
49
+ #define SCNbLEASTN see below
50
  #define PRIdFASTN see below
51
  #define PRIiFASTN see below
52
  #define PRIoFASTN see below
53
  #define PRIuFASTN see below
54
  #define PRIxFASTN see below
55
  #define PRIXFASTN see below
56
+ #define PRIbFASTN see below
57
+ #define PRIBFASTN see below
58
  #define SCNdFASTN see below
59
  #define SCNiFASTN see below
60
  #define SCNoFASTN see below
61
  #define SCNuFASTN see below
62
  #define SCNxFASTN see below
63
+ #define SCNbFASTN see below
64
  #define PRIdMAX see below
65
  #define PRIiMAX see below
66
  #define PRIoMAX see below
67
  #define PRIuMAX see below
68
  #define PRIxMAX see below
69
  #define PRIXMAX see below
70
+ #define PRIbMAX see below
71
+ #define PRIBMAX see below
72
  #define SCNdMAX see below
73
  #define SCNiMAX see below
74
  #define SCNoMAX see below
75
  #define SCNuMAX see below
76
  #define SCNxMAX see below
77
+ #define SCNbMAX see below
78
  #define PRIdPTR see below
79
  #define PRIiPTR see below
80
  #define PRIoPTR see below
81
  #define PRIuPTR see below
82
  #define PRIxPTR see below
83
  #define PRIXPTR see below
84
+ #define PRIbPTR see below
85
+ #define PRIBPTR see below
86
  #define SCNdPTR see below
87
  #define SCNiPTR see below
88
  #define SCNoPTR see below
89
  #define SCNuPTR see below
90
  #define SCNxPTR see below
91
+ #define SCNbPTR see below
92
  ```
93
 
94
  The contents and meaning of the header `<cinttypes>` are the same as the
95
  C standard library header `<inttypes.h>`, with the following changes:
96
 
97
  - The header `<cinttypes>` includes the header `<cstdint>` instead of
98
  `<stdint.h>`, and
 
 
 
99
  - if and only if the type `intmax_t` designates an extended integer type
100
  [[basic.fundamental]], the following function signatures are added:
101
  ``` cpp
102
  constexpr intmax_t abs(intmax_t);
103
  constexpr imaxdiv_t div(intmax_t, intmax_t);
 
112
  Each of the `PRI` macros listed in this subclause is defined if and only
113
  if the implementation defines the corresponding *typedef-name* in 
114
  [[cstdint.syn]]. Each of the `SCN` macros listed in this subclause is
115
  defined if and only if the implementation defines the corresponding
116
  *typedef-name* in  [[cstdint.syn]] and has a suitable `fscanf` length
117
+ modifier for the type. Each of the `PRIB` macros listed in this
118
+ subclause is defined if and only if `fprintf` supports the `B`
119
+ conversion specifier.
120
 
121
  <!-- Link reference definitions -->
122
  [adjustfield.manip]: #adjustfield.manip
123
  [allocator.requirements.general]: library.md#allocator.requirements.general
124
  [basefield.manip]: #basefield.manip
 
133
  [c.files]: #c.files
134
  [char.traits]: strings.md#char.traits
135
  [char.traits.specializations]: strings.md#char.traits.specializations
136
  [character.seq]: library.md#character.seq
137
  [cinttypes.syn]: #cinttypes.syn
138
+ [container.reqmts]: containers.md#container.reqmts
139
  [cpp17.copyassignable]: #cpp17.copyassignable
140
  [cpp17.copyconstructible]: #cpp17.copyconstructible
141
  [cpp17.defaultconstructible]: #cpp17.defaultconstructible
142
  [cpp17.destructible]: #cpp17.destructible
143
  [cpp17.equalitycomparable]: #cpp17.equalitycomparable
144
  [cstdint.syn]: support.md#cstdint.syn
145
  [cstdio.syn]: #cstdio.syn
146
+ [defns.character.container]: intro.md#defns.character.container
147
  [defns.ntcts]: intro.md#defns.ntcts
148
  [enumerated.types]: library.md#enumerated.types
149
  [error.reporting]: #error.reporting
150
  [ext.manip]: #ext.manip
151
+ [file.native]: #file.native
152
  [file.streams]: #file.streams
153
  [filebuf]: #filebuf
154
  [filebuf.assign]: #filebuf.assign
155
  [filebuf.cons]: #filebuf.cons
156
  [filebuf.general]: #filebuf.general
 
160
  [filebuf.virtuals]: #filebuf.virtuals
161
  [filesystems]: #filesystems
162
  [floatfield.manip]: #floatfield.manip
163
  [fmtflags.manip]: #fmtflags.manip
164
  [fmtflags.state]: #fmtflags.state
165
+ [format.err.report]: text.md#format.err.report
166
+ [format.functions]: text.md#format.functions
167
+ [format.string]: text.md#format.string
168
+ [format.string.escaped]: text.md#format.string.escaped
169
  [fpos]: #fpos
170
+ [fpos.general]: #fpos.general
171
  [fpos.members]: #fpos.members
172
  [fpos.operations]: #fpos.operations
173
  [fs.class.directory.entry]: #fs.class.directory.entry
174
  [fs.class.directory.entry.general]: #fs.class.directory.entry.general
175
  [fs.class.directory.iterator]: #fs.class.directory.iterator
 
253
  [fs.path.concat]: #fs.path.concat
254
  [fs.path.construct]: #fs.path.construct
255
  [fs.path.cvt]: #fs.path.cvt
256
  [fs.path.decompose]: #fs.path.decompose
257
  [fs.path.fmt.cvt]: #fs.path.fmt.cvt
258
+ [fs.path.fmtr]: #fs.path.fmtr
259
+ [fs.path.fmtr.funcs]: #fs.path.fmtr.funcs
260
+ [fs.path.fmtr.general]: #fs.path.fmtr.general
261
  [fs.path.gen]: #fs.path.gen
262
  [fs.path.generic]: #fs.path.generic
263
  [fs.path.generic.obs]: #fs.path.generic.obs
264
  [fs.path.hash]: #fs.path.hash
265
  [fs.path.io]: #fs.path.io
 
289
  [input.iterators]: iterators.md#input.iterators
290
  [input.output]: #input.output
291
  [input.output.general]: #input.output.general
292
  [input.streams]: #input.streams
293
  [input.streams.general]: #input.streams.general
294
+ [intro.abstract]: intro.md#intro.abstract
295
  [intro.multithread]: basic.md#intro.multithread
296
  [intro.races]: basic.md#intro.races
297
  [iomanip.syn]: #iomanip.syn
298
  [ios]: #ios
299
  [ios.base]: #ios.base
 
354
  [istringstream.cons]: #istringstream.cons
355
  [istringstream.general]: #istringstream.general
356
  [istringstream.members]: #istringstream.members
357
  [istringstream.swap]: #istringstream.swap
358
  [lex.charset]: lex.md#lex.charset
359
+ [locale.codecvt.virtuals]: text.md#locale.codecvt.virtuals
360
+ [locale.num.get]: text.md#locale.num.get
361
  [namespace.std]: library.md#namespace.std
362
  [narrow.stream.objects]: #narrow.stream.objects
363
  [numeric.limits]: support.md#numeric.limits
364
  [ofstream]: #ofstream
365
  [ofstream.cons]: #ofstream.cons
 
474
  [views.span]: containers.md#views.span
475
  [wide.stream.objects]: #wide.stream.objects
476
 
477
  [^1]: Typically `long long`.
478
 
479
+ [^2]: Most places where `streamsize` is used would use `size_t` in C, or
480
+ `ssize_t` in POSIX.
481
 
482
  [^3]: It is the implementation’s responsibility to implement headers so
483
  that including `<iosfwd>` and other headers does not violate the
484
  rules about multiple occurrences of default arguments.
485
 
 
491
  mixed arbitrarily with operations on the corresponding stdio stream.
492
  In practical terms, synchronization usually means that a standard
493
  iostream object and a standard stdio object share a buffer.
494
 
495
  [^6]: An implementation is free to implement both the integer array
496
+ pointed at by *iarray* and the pointer array pointed at by *parray*
497
  as sparse data structures, possibly with a one-element cache for
498
  each.
499
 
500
  [^7]: For example, because it cannot allocate space.
501
 
 
528
  ways to implement `xsgetn()` and `xsputn()` by overriding these
529
  definitions from the base class.
530
 
531
  [^16]: That is, for each class derived from a specialization of
532
  `basic_streambuf` in this Clause [[stringbuf]], [[filebuf]],
533
+ a specification of how consuming a character affects the associated
534
  output sequence is given. There is no requirement on a
535
  program-defined class.
536
 
537
  [^17]: Typically, `overflow` returns `c` to indicate success, except
538
  when `traits::eq_int_type(c, traits::eof())` returns `true`, in