From Jason Turner

[cinttypes.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp97aae5vo/{from.md → to.md} +537 -0
tmp/tmp97aae5vo/{from.md → to.md} RENAMED
@@ -0,0 +1,537 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Header `<cinttypes>` synopsis <a id="cinttypes.syn">[[cinttypes.syn]]</a>
2
+
3
+ ``` cpp
4
+ #include <cstdint> // see [cstdint.syn]
5
+
6
+ namespace std {
7
+ using imaxdiv_t = see below;
8
+
9
+ intmax_t imaxabs(intmax_t j);
10
+ imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
11
+ intmax_t strtoimax(const char* nptr, char** endptr, int base);
12
+ uintmax_t strtoumax(const char* nptr, char** endptr, int base);
13
+ intmax_t wcstoimax(const wchar_t* nptr, wchar_t** endptr, int base);
14
+ uintmax_t wcstoumax(const wchar_t* nptr, wchar_t** endptr, int base);
15
+
16
+ intmax_t abs(intmax_t); // optional, see below
17
+ 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
+ - if and only if the type `intmax_t` designates an extended integer
83
+ type ([[basic.fundamental]]), the following function signatures are
84
+ added:
85
+ ``` cpp
86
+ intmax_t abs(intmax_t);
87
+ imaxdiv_t div(intmax_t, intmax_t);
88
+ ```
89
+
90
+ which shall have the same semantics as the function signatures
91
+ `intmax_t imaxabs(intmax_t)` and
92
+ `imaxdiv_t imaxdiv(intmax_t, intmax_t)`, respectively.
93
+
94
+ ISO C 7.8.
95
+
96
+ <!-- Link reference definitions -->
97
+ [adjustfield.manip]: #adjustfield.manip
98
+ [allocator.requirements]: library.md#allocator.requirements
99
+ [basefield.manip]: #basefield.manip
100
+ [basic.fundamental]: basic.md#basic.fundamental
101
+ [basic.ios.cons]: #basic.ios.cons
102
+ [basic.ios.members]: #basic.ios.members
103
+ [basic.start.main]: basic.md#basic.start.main
104
+ [bidirectional.iterators]: iterators.md#bidirectional.iterators
105
+ [bitmask.types]: library.md#bitmask.types
106
+ [c.files]: #c.files
107
+ [cinttypes.syn]: #cinttypes.syn
108
+ [cstdio.syn]: #cstdio.syn
109
+ [defns.ntcts]: library.md#defns.ntcts
110
+ [enumerated.types]: library.md#enumerated.types
111
+ [error.reporting]: #error.reporting
112
+ [ext.manip]: #ext.manip
113
+ [fig:streampos]: #fig:streampos
114
+ [file.streams]: #file.streams
115
+ [filebuf]: #filebuf
116
+ [filebuf.assign]: #filebuf.assign
117
+ [filebuf.cons]: #filebuf.cons
118
+ [filebuf.members]: #filebuf.members
119
+ [filebuf.virtuals]: #filebuf.virtuals
120
+ [filesystem_error.members]: #filesystem_error.members
121
+ [filesystems]: #filesystems
122
+ [floatfield.manip]: #floatfield.manip
123
+ [fmtflags.manip]: #fmtflags.manip
124
+ [fmtflags.state]: #fmtflags.state
125
+ [fpos]: #fpos
126
+ [fpos.members]: #fpos.members
127
+ [fpos.operations]: #fpos.operations
128
+ [fs.class.directory_entry]: #fs.class.directory_entry
129
+ [fs.class.directory_iterator]: #fs.class.directory_iterator
130
+ [fs.class.file_status]: #fs.class.file_status
131
+ [fs.class.filesystem_error]: #fs.class.filesystem_error
132
+ [fs.class.path]: #fs.class.path
133
+ [fs.class.rec.dir.itr]: #fs.class.rec.dir.itr
134
+ [fs.conform.9945]: #fs.conform.9945
135
+ [fs.conform.os]: #fs.conform.os
136
+ [fs.conformance]: #fs.conformance
137
+ [fs.def.absolute.path]: #fs.def.absolute.path
138
+ [fs.def.filename]: #fs.def.filename
139
+ [fs.def.link]: #fs.def.link
140
+ [fs.def.native]: #fs.def.native
141
+ [fs.def.native.encode]: #fs.def.native.encode
142
+ [fs.def.normal.form]: #fs.def.normal.form
143
+ [fs.def.osdep]: #fs.def.osdep
144
+ [fs.def.path]: #fs.def.path
145
+ [fs.def.pathname]: #fs.def.pathname
146
+ [fs.def.pathres]: #fs.def.pathres
147
+ [fs.def.race]: #fs.def.race
148
+ [fs.def.symlink]: #fs.def.symlink
149
+ [fs.definitions]: #fs.definitions
150
+ [fs.dir.entry.cons]: #fs.dir.entry.cons
151
+ [fs.dir.entry.mods]: #fs.dir.entry.mods
152
+ [fs.dir.entry.obs]: #fs.dir.entry.obs
153
+ [fs.dir.itr.members]: #fs.dir.itr.members
154
+ [fs.dir.itr.nonmembers]: #fs.dir.itr.nonmembers
155
+ [fs.enum]: #fs.enum
156
+ [fs.enum.copy.opts]: #fs.enum.copy.opts
157
+ [fs.enum.dir.opts]: #fs.enum.dir.opts
158
+ [fs.enum.file_type]: #fs.enum.file_type
159
+ [fs.enum.path.format]: #fs.enum.path.format
160
+ [fs.enum.perm.opts]: #fs.enum.perm.opts
161
+ [fs.enum.perms]: #fs.enum.perms
162
+ [fs.err.report]: #fs.err.report
163
+ [fs.file_status.cons]: #fs.file_status.cons
164
+ [fs.file_status.mods]: #fs.file_status.mods
165
+ [fs.file_status.obs]: #fs.file_status.obs
166
+ [fs.filesystem.syn]: #fs.filesystem.syn
167
+ [fs.general]: #fs.general
168
+ [fs.norm.ref]: #fs.norm.ref
169
+ [fs.op.absolute]: #fs.op.absolute
170
+ [fs.op.canonical]: #fs.op.canonical
171
+ [fs.op.copy]: #fs.op.copy
172
+ [fs.op.copy_file]: #fs.op.copy_file
173
+ [fs.op.copy_symlink]: #fs.op.copy_symlink
174
+ [fs.op.create_dir_symlk]: #fs.op.create_dir_symlk
175
+ [fs.op.create_directories]: #fs.op.create_directories
176
+ [fs.op.create_directory]: #fs.op.create_directory
177
+ [fs.op.create_hard_lk]: #fs.op.create_hard_lk
178
+ [fs.op.create_symlink]: #fs.op.create_symlink
179
+ [fs.op.current_path]: #fs.op.current_path
180
+ [fs.op.equivalent]: #fs.op.equivalent
181
+ [fs.op.exists]: #fs.op.exists
182
+ [fs.op.file_size]: #fs.op.file_size
183
+ [fs.op.funcs]: #fs.op.funcs
184
+ [fs.op.hard_lk_ct]: #fs.op.hard_lk_ct
185
+ [fs.op.is_block_file]: #fs.op.is_block_file
186
+ [fs.op.is_char_file]: #fs.op.is_char_file
187
+ [fs.op.is_directory]: #fs.op.is_directory
188
+ [fs.op.is_empty]: #fs.op.is_empty
189
+ [fs.op.is_fifo]: #fs.op.is_fifo
190
+ [fs.op.is_other]: #fs.op.is_other
191
+ [fs.op.is_regular_file]: #fs.op.is_regular_file
192
+ [fs.op.is_socket]: #fs.op.is_socket
193
+ [fs.op.is_symlink]: #fs.op.is_symlink
194
+ [fs.op.last_write_time]: #fs.op.last_write_time
195
+ [fs.op.permissions]: #fs.op.permissions
196
+ [fs.op.proximate]: #fs.op.proximate
197
+ [fs.op.read_symlink]: #fs.op.read_symlink
198
+ [fs.op.relative]: #fs.op.relative
199
+ [fs.op.remove]: #fs.op.remove
200
+ [fs.op.remove_all]: #fs.op.remove_all
201
+ [fs.op.rename]: #fs.op.rename
202
+ [fs.op.resize_file]: #fs.op.resize_file
203
+ [fs.op.space]: #fs.op.space
204
+ [fs.op.status]: #fs.op.status
205
+ [fs.op.status_known]: #fs.op.status_known
206
+ [fs.op.symlink_status]: #fs.op.symlink_status
207
+ [fs.op.temp_dir_path]: #fs.op.temp_dir_path
208
+ [fs.op.weakly_canonical]: #fs.op.weakly_canonical
209
+ [fs.path.append]: #fs.path.append
210
+ [fs.path.assign]: #fs.path.assign
211
+ [fs.path.compare]: #fs.path.compare
212
+ [fs.path.concat]: #fs.path.concat
213
+ [fs.path.construct]: #fs.path.construct
214
+ [fs.path.cvt]: #fs.path.cvt
215
+ [fs.path.decompose]: #fs.path.decompose
216
+ [fs.path.factory]: #fs.path.factory
217
+ [fs.path.fmt.cvt]: #fs.path.fmt.cvt
218
+ [fs.path.gen]: #fs.path.gen
219
+ [fs.path.generic]: #fs.path.generic
220
+ [fs.path.generic.obs]: #fs.path.generic.obs
221
+ [fs.path.io]: #fs.path.io
222
+ [fs.path.itr]: #fs.path.itr
223
+ [fs.path.member]: #fs.path.member
224
+ [fs.path.modifiers]: #fs.path.modifiers
225
+ [fs.path.native.obs]: #fs.path.native.obs
226
+ [fs.path.nonmember]: #fs.path.nonmember
227
+ [fs.path.query]: #fs.path.query
228
+ [fs.path.req]: #fs.path.req
229
+ [fs.path.type.cvt]: #fs.path.type.cvt
230
+ [fs.race.behavior]: #fs.race.behavior
231
+ [fs.rec.dir.itr.members]: #fs.rec.dir.itr.members
232
+ [fs.rec.dir.itr.nonmembers]: #fs.rec.dir.itr.nonmembers
233
+ [fs.req]: #fs.req
234
+ [fs.req.namespace]: #fs.req.namespace
235
+ [fstream]: #fstream
236
+ [fstream.assign]: #fstream.assign
237
+ [fstream.cons]: #fstream.cons
238
+ [fstream.members]: #fstream.members
239
+ [fstream.syn]: #fstream.syn
240
+ [ifstream]: #ifstream
241
+ [ifstream.assign]: #ifstream.assign
242
+ [ifstream.cons]: #ifstream.cons
243
+ [ifstream.members]: #ifstream.members
244
+ [input.iterators]: iterators.md#input.iterators
245
+ [input.output]: #input.output
246
+ [input.output.general]: #input.output.general
247
+ [input.streams]: #input.streams
248
+ [intro.multithread]: intro.md#intro.multithread
249
+ [iomanip.syn]: #iomanip.syn
250
+ [ios]: #ios
251
+ [ios.base]: #ios.base
252
+ [ios.base.callback]: #ios.base.callback
253
+ [ios.base.cons]: #ios.base.cons
254
+ [ios.base.locales]: #ios.base.locales
255
+ [ios.base.storage]: #ios.base.storage
256
+ [ios.members.static]: #ios.members.static
257
+ [ios.overview]: #ios.overview
258
+ [ios.syn]: #ios.syn
259
+ [ios.types]: #ios.types
260
+ [ios::Init]: #ios::Init
261
+ [ios::failure]: #ios::failure
262
+ [ios::fmtflags]: #ios::fmtflags
263
+ [ios::iostate]: #ios::iostate
264
+ [ios::openmode]: #ios::openmode
265
+ [ios::seekdir]: #ios::seekdir
266
+ [iosfwd.syn]: #iosfwd.syn
267
+ [iostate.flags]: #iostate.flags
268
+ [iostream.assign]: #iostream.assign
269
+ [iostream.cons]: #iostream.cons
270
+ [iostream.dest]: #iostream.dest
271
+ [iostream.format]: #iostream.format
272
+ [iostream.forward]: #iostream.forward
273
+ [iostream.forward.overview]: #iostream.forward.overview
274
+ [iostream.limits.imbue]: #iostream.limits.imbue
275
+ [iostream.objects]: #iostream.objects
276
+ [iostream.objects.overview]: #iostream.objects.overview
277
+ [iostream.syn]: #iostream.syn
278
+ [iostreamclass]: #iostreamclass
279
+ [iostreams.base]: #iostreams.base
280
+ [iostreams.limits.pos]: #iostreams.limits.pos
281
+ [iostreams.requirements]: #iostreams.requirements
282
+ [iostreams.threadsafety]: #iostreams.threadsafety
283
+ [istream]: #istream
284
+ [istream.assign]: #istream.assign
285
+ [istream.cons]: #istream.cons
286
+ [istream.extractors]: #istream.extractors
287
+ [istream.formatted]: #istream.formatted
288
+ [istream.formatted.arithmetic]: #istream.formatted.arithmetic
289
+ [istream.formatted.reqmts]: #istream.formatted.reqmts
290
+ [istream.manip]: #istream.manip
291
+ [istream.rvalue]: #istream.rvalue
292
+ [istream.syn]: #istream.syn
293
+ [istream.unformatted]: #istream.unformatted
294
+ [istream::sentry]: #istream::sentry
295
+ [istringstream]: #istringstream
296
+ [istringstream.assign]: #istringstream.assign
297
+ [istringstream.cons]: #istringstream.cons
298
+ [istringstream.members]: #istringstream.members
299
+ [lex.charset]: lex.md#lex.charset
300
+ [locale.codecvt.virtuals]: localization.md#locale.codecvt.virtuals
301
+ [locale.num.get]: localization.md#locale.num.get
302
+ [narrow.stream.objects]: #narrow.stream.objects
303
+ [numeric.limits]: language.md#numeric.limits
304
+ [ofstream]: #ofstream
305
+ [ofstream.assign]: #ofstream.assign
306
+ [ofstream.cons]: #ofstream.cons
307
+ [ofstream.members]: #ofstream.members
308
+ [ostream]: #ostream
309
+ [ostream.assign]: #ostream.assign
310
+ [ostream.cons]: #ostream.cons
311
+ [ostream.formatted]: #ostream.formatted
312
+ [ostream.formatted.reqmts]: #ostream.formatted.reqmts
313
+ [ostream.inserters]: #ostream.inserters
314
+ [ostream.inserters.arithmetic]: #ostream.inserters.arithmetic
315
+ [ostream.inserters.character]: #ostream.inserters.character
316
+ [ostream.manip]: #ostream.manip
317
+ [ostream.rvalue]: #ostream.rvalue
318
+ [ostream.seeks]: #ostream.seeks
319
+ [ostream.syn]: #ostream.syn
320
+ [ostream.unformatted]: #ostream.unformatted
321
+ [ostream::sentry]: #ostream::sentry
322
+ [ostringstream]: #ostringstream
323
+ [ostringstream.assign]: #ostringstream.assign
324
+ [ostringstream.cons]: #ostringstream.cons
325
+ [ostringstream.members]: #ostringstream.members
326
+ [output.streams]: #output.streams
327
+ [quoted.manip]: #quoted.manip
328
+ [res.on.data.races]: library.md#res.on.data.races
329
+ [res.on.exception.handling]: library.md#res.on.exception.handling
330
+ [sstream.syn]: #sstream.syn
331
+ [std.ios.manip]: #std.ios.manip
332
+ [std.manip]: #std.manip
333
+ [stream.buffers]: #stream.buffers
334
+ [stream.types]: #stream.types
335
+ [streambuf]: #streambuf
336
+ [streambuf.assign]: #streambuf.assign
337
+ [streambuf.buffer]: #streambuf.buffer
338
+ [streambuf.cons]: #streambuf.cons
339
+ [streambuf.get.area]: #streambuf.get.area
340
+ [streambuf.locales]: #streambuf.locales
341
+ [streambuf.members]: #streambuf.members
342
+ [streambuf.protected]: #streambuf.protected
343
+ [streambuf.pub.get]: #streambuf.pub.get
344
+ [streambuf.pub.pback]: #streambuf.pub.pback
345
+ [streambuf.pub.put]: #streambuf.pub.put
346
+ [streambuf.put.area]: #streambuf.put.area
347
+ [streambuf.reqts]: #streambuf.reqts
348
+ [streambuf.syn]: #streambuf.syn
349
+ [streambuf.virt.buffer]: #streambuf.virt.buffer
350
+ [streambuf.virt.get]: #streambuf.virt.get
351
+ [streambuf.virt.locales]: #streambuf.virt.locales
352
+ [streambuf.virt.pback]: #streambuf.virt.pback
353
+ [streambuf.virt.put]: #streambuf.virt.put
354
+ [streambuf.virtuals]: #streambuf.virtuals
355
+ [string.classes]: strings.md#string.classes
356
+ [string.streams]: #string.streams
357
+ [stringbuf]: #stringbuf
358
+ [stringbuf.assign]: #stringbuf.assign
359
+ [stringbuf.cons]: #stringbuf.cons
360
+ [stringbuf.members]: #stringbuf.members
361
+ [stringbuf.virtuals]: #stringbuf.virtuals
362
+ [strings]: strings.md#strings
363
+ [stringstream]: #stringstream
364
+ [stringstream.assign]: #stringstream.assign
365
+ [stringstream.cons]: #stringstream.cons
366
+ [stringstream.members]: #stringstream.members
367
+ [tab:enum.path.format]: #tab:enum.path.format
368
+ [tab:enum.perm_options]: #tab:enum.perm_options
369
+ [tab:filesystem_error.1]: #tab:filesystem_error.1
370
+ [tab:filesystem_error.2]: #tab:filesystem_error.2
371
+ [tab:filesystem_error.3]: #tab:filesystem_error.3
372
+ [tab:fs.enum.copy_options]: #tab:fs.enum.copy_options
373
+ [tab:fs.enum.directory_options]: #tab:fs.enum.directory_options
374
+ [tab:fs.enum.file_type]: #tab:fs.enum.file_type
375
+ [tab:fs.enum.perms]: #tab:fs.enum.perms
376
+ [tab:iostreams.basicios.init.effects]: #tab:iostreams.basicios.init.effects
377
+ [tab:iostreams.copyfmt.effects]: #tab:iostreams.copyfmt.effects
378
+ [tab:iostreams.file.open.modes]: #tab:iostreams.file.open.modes
379
+ [tab:iostreams.fmtflags.constants]: #tab:iostreams.fmtflags.constants
380
+ [tab:iostreams.fmtflags.effects]: #tab:iostreams.fmtflags.effects
381
+ [tab:iostreams.iostate.effects]: #tab:iostreams.iostate.effects
382
+ [tab:iostreams.lib.summary]: #tab:iostreams.lib.summary
383
+ [tab:iostreams.newoff.values]: #tab:iostreams.newoff.values
384
+ [tab:iostreams.openmode.effects]: #tab:iostreams.openmode.effects
385
+ [tab:iostreams.position.requirements]: #tab:iostreams.position.requirements
386
+ [tab:iostreams.seekdir.effects]: #tab:iostreams.seekdir.effects
387
+ [tab:iostreams.seekoff.effects]: #tab:iostreams.seekoff.effects
388
+ [tab:iostreams.seekoff.positioning]: #tab:iostreams.seekoff.positioning
389
+ [temp.deduct]: temp.md#temp.deduct
390
+ [time.clock.req]: utilities.md#time.clock.req
391
+ [wide.stream.objects]: #wide.stream.objects
392
+
393
+ [^1]: It is the implementation’s responsibility to implement headers so
394
+ that including `<iosfwd>` and other headers does not violate the
395
+ rules about multiple occurrences of default arguments.
396
+
397
+ [^2]: If it is possible for them to do so, implementations are
398
+ encouraged to initialize the objects earlier than required.
399
+
400
+ [^3]: Constructors and destructors for static objects can access these
401
+ objects to read input from `stdin` or write output to `stdout` or
402
+ `stderr`.
403
+
404
+ [^4]: Typically `long long`.
405
+
406
+ [^5]: `streamsize` is used in most places where ISO C would use
407
+ `size_t`. Most of the uses of `streamsize` could use `size_t`,
408
+ except for the `strstreambuf` constructors, which require negative
409
+ values. It should probably be the signed type corresponding to
410
+ `size_t` (which is what Posix.2 calls `ssize_t`).
411
+
412
+ [^6]: This implies that operations on a standard iostream object can be
413
+ mixed arbitrarily with operations on the corresponding stdio stream.
414
+ In practical terms, synchronization usually means that a standard
415
+ iostream object and a standard stdio object share a buffer.
416
+
417
+ [^7]: An implementation is free to implement both the integer array
418
+ pointed at by `iarray` and the pointer array pointed at by `parray`
419
+ as sparse data structures, possibly with a one-element cache for
420
+ each.
421
+
422
+ [^8]: for example, because it cannot allocate space.
423
+
424
+ [^9]: for example, because it cannot allocate space.
425
+
426
+ [^10]: This suggests an infinite amount of copying, but the
427
+ implementation can keep track of the maximum element of the arrays
428
+ that is nonzero.
429
+
430
+ [^11]: Checking `badbit` also for `fail()` is historical practice.
431
+
432
+ [^12]: The function signature `dec(ios_base&)` can be called by the
433
+ function signature
434
+ `basic_ostream& stream::operator<<(ios_base& (*)(ios_base&))` to
435
+ permit expressions of the form `cout << dec` to change the format
436
+ flags stored in `cout`.
437
+
438
+ [^13]: The default constructor is protected for class `basic_streambuf`
439
+ to assure that only objects for classes derived from this class may
440
+ be constructed.
441
+
442
+ [^14]: `underflow` or `uflow` might fail by throwing an exception
443
+ prematurely. The intention is not only that the calls will not
444
+ return `eof()` but that they will return “immediately”.
445
+
446
+ [^15]: Classes derived from `basic_streambuf` can provide more efficient
447
+ ways to implement `xsgetn()` and `xsputn()` by overriding these
448
+ definitions from the base class.
449
+
450
+ [^16]: That is, for each class derived from an instance of
451
+ `basic_streambuf` in this Clause ([[stringbuf]],
452
+ [[filebuf]]), a specification of how consuming a character
453
+ effects the associated output sequence is given. There is no
454
+ requirement on a program-defined class.
455
+
456
+ [^17]: Typically, `overflow` returns `c` to indicate success, except
457
+ when `traits::eq_int_type(c, traits::eof())` returns `true`, in
458
+ which case it returns `traits::not_eof(c)`.
459
+
460
+ [^18]: This will be possible only in functions that are part of the
461
+ library. The semantics of the constructor used in user code is as
462
+ specified.
463
+
464
+ [^19]: The sentry constructor and destructor can also perform additional
465
+ implementation-dependent operations.
466
+
467
+ [^20]: This is done without causing an `ios::failure` to be thrown.
468
+
469
+ [^21]: See, for example, the function signature
470
+ `ws(basic_istream&)` ([[istream.manip]]).
471
+
472
+ [^22]: See, for example, the function signature
473
+ `dec(ios_base&)` ([[basefield.manip]]).
474
+
475
+ [^23]: This is done without causing an `ios::failure` to be thrown.
476
+
477
+ [^24]: Note that this function is not overloaded on types `signed char`
478
+ and `unsigned char`.
479
+
480
+ [^25]: Note that this function is not overloaded on types `signed char`
481
+ and `unsigned char`.
482
+
483
+ [^26]: Note that this function is not overloaded on types `signed char`
484
+ and `unsigned char`.
485
+
486
+ [^27]: Since the final input character is “extracted”, it is counted in
487
+ the `gcount()`, even though it is not stored.
488
+
489
+ [^28]: This allows an input line which exactly fills the buffer, without
490
+ setting `failbit`. This is different behavior than the historical
491
+ AT&T implementation.
492
+
493
+ [^29]: This implies an empty input line will not cause `failbit` to be
494
+ set.
495
+
496
+ [^30]: Note that this function is not overloaded on types `signed char`
497
+ and `unsigned char`.
498
+
499
+ [^31]: The call `os.tie()->flush()` does not necessarily occur if the
500
+ function can determine that no synchronization is necessary.
501
+
502
+ [^32]: The `sentry` constructor and destructor can also perform
503
+ additional implementation-dependent operations.
504
+
505
+ [^33]: without causing an `ios::failure` to be thrown.
506
+
507
+ [^34]: See, for example, the function signature
508
+ `endl(basic_ostream&)` ([[ostream.manip]]).
509
+
510
+ [^35]: See, for example, the function signature
511
+ `dec(ios_base&)` ([[basefield.manip]]).
512
+
513
+ [^36]: without causing an `ios::failure` to be thrown.
514
+
515
+ [^37]: Note that this function is not overloaded on types `signed char`
516
+ and `unsigned char`.
517
+
518
+ [^38]: Note that this function is not overloaded on types `signed char`
519
+ and `unsigned char`.
520
+
521
+ [^39]: The expression `cin >> resetiosflags(ios_base::skipws)` clears
522
+ `ios_base::skipws` in the format flags stored in the
523
+ `basic_istream<charT, traits>` object `cin` (the same as
524
+ `cin >> noskipws`), and the expression
525
+ `cout << resetiosflags(ios_base::showbase)` clears
526
+ `ios_base::showbase` in the format flags stored in the
527
+ `basic_ostream<charT, traits>` object `cout` (the same as
528
+ `cout << noshowbase`).
529
+
530
+ [^40]: The macro `SEEK_END` is defined, and the function signatures
531
+ `fopen(const char*, const char*)` and `fseek(FILE*, long, int)` are
532
+ declared, in `<cstdio>` ([[cstdio.syn]]).
533
+
534
+ [^41]: POSIX® is a registered trademark of The IEEE. Windows® is a
535
+ registered trademark of Microsoft Corporation. This information is
536
+ given for the convenience of users of this document and does not
537
+ constitute an endorsement by ISO or IEC of these products.