From Jason Turner

[c.files]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpcnw6lrdo/{from.md → to.md} +102 -115
tmp/tmpcnw6lrdo/{from.md → to.md} RENAMED
@@ -26,11 +26,11 @@ namespace std {
26
  #define stdin see below
27
  #define stdout see below
28
 
29
  namespace std {
30
  int remove(const char* filename);
31
- int rename(const char* old, const char* new);
32
  FILE* tmpfile();
33
  char* tmpnam(char* s);
34
  int fclose(FILE* stream);
35
  int fflush(FILE* stream);
36
  FILE* fopen(const char* filename, const char* mode);
@@ -77,14 +77,14 @@ namespace std {
77
 
78
  The contents and meaning of the header `<cstdio>` are the same as the C
79
  standard library header `<stdio.h>`.
80
 
81
  Calls to the function `tmpnam` with an argument that is a null pointer
82
- value may introduce a data race ([[res.on.data.races]]) with other
83
- calls to `tmpnam` with an argument that is a null pointer value.
84
 
85
- ISO C 7.21.
86
 
87
  ### Header `<cinttypes>` synopsis <a id="cinttypes.syn">[[cinttypes.syn]]</a>
88
 
89
  ``` cpp
90
  #include <cstdint> // see [cstdint.syn]
@@ -163,145 +163,139 @@ namespace std {
163
  The contents and meaning of the header `<cinttypes>` are the same as the
164
  C standard library header `<inttypes.h>`, with the following changes:
165
 
166
  - The header `<cinttypes>` includes the header `<cstdint>` instead of
167
  `<stdint.h>`, and
168
- - if and only if the type `intmax_t` designates an extended integer
169
- type ([[basic.fundamental]]), the following function signatures are
170
- added:
171
  ``` cpp
172
  intmax_t abs(intmax_t);
173
  imaxdiv_t div(intmax_t, intmax_t);
174
  ```
175
 
176
  which shall have the same semantics as the function signatures
177
  `intmax_t imaxabs(intmax_t)` and
178
  `imaxdiv_t imaxdiv(intmax_t, intmax_t)`, respectively.
179
 
180
- ISO C 7.8.
181
 
182
  <!-- Link reference definitions -->
183
  [adjustfield.manip]: #adjustfield.manip
184
- [allocator.requirements]: library.md#allocator.requirements
185
  [basefield.manip]: #basefield.manip
186
  [basic.fundamental]: basic.md#basic.fundamental
187
  [basic.ios.cons]: #basic.ios.cons
 
188
  [basic.ios.members]: #basic.ios.members
189
  [basic.start.main]: basic.md#basic.start.main
190
  [bidirectional.iterators]: iterators.md#bidirectional.iterators
191
  [bitmask.types]: library.md#bitmask.types
192
  [c.files]: #c.files
 
193
  [cinttypes.syn]: #cinttypes.syn
 
 
 
 
 
 
 
194
  [cstdio.syn]: #cstdio.syn
195
  [defns.ntcts]: library.md#defns.ntcts
196
  [enumerated.types]: library.md#enumerated.types
197
  [error.reporting]: #error.reporting
198
  [ext.manip]: #ext.manip
199
- [fig:streampos]: #fig:streampos
200
  [file.streams]: #file.streams
201
  [filebuf]: #filebuf
202
  [filebuf.assign]: #filebuf.assign
203
  [filebuf.cons]: #filebuf.cons
204
  [filebuf.members]: #filebuf.members
 
 
205
  [filebuf.virtuals]: #filebuf.virtuals
206
- [filesystem_error.members]: #filesystem_error.members
207
  [filesystems]: #filesystems
208
  [floatfield.manip]: #floatfield.manip
209
  [fmtflags.manip]: #fmtflags.manip
210
  [fmtflags.state]: #fmtflags.state
211
  [fpos]: #fpos
212
  [fpos.members]: #fpos.members
213
  [fpos.operations]: #fpos.operations
214
- [fs.class.directory_entry]: #fs.class.directory_entry
215
- [fs.class.directory_iterator]: #fs.class.directory_iterator
216
- [fs.class.file_status]: #fs.class.file_status
217
- [fs.class.filesystem_error]: #fs.class.filesystem_error
218
  [fs.class.path]: #fs.class.path
219
  [fs.class.rec.dir.itr]: #fs.class.rec.dir.itr
220
  [fs.conform.9945]: #fs.conform.9945
221
  [fs.conform.os]: #fs.conform.os
222
  [fs.conformance]: #fs.conformance
223
- [fs.def.absolute.path]: #fs.def.absolute.path
224
- [fs.def.filename]: #fs.def.filename
225
- [fs.def.link]: #fs.def.link
226
- [fs.def.native]: #fs.def.native
227
- [fs.def.native.encode]: #fs.def.native.encode
228
- [fs.def.normal.form]: #fs.def.normal.form
229
- [fs.def.osdep]: #fs.def.osdep
230
- [fs.def.path]: #fs.def.path
231
- [fs.def.pathname]: #fs.def.pathname
232
- [fs.def.pathres]: #fs.def.pathres
233
- [fs.def.race]: #fs.def.race
234
- [fs.def.symlink]: #fs.def.symlink
235
- [fs.definitions]: #fs.definitions
236
  [fs.dir.entry.cons]: #fs.dir.entry.cons
237
  [fs.dir.entry.mods]: #fs.dir.entry.mods
238
  [fs.dir.entry.obs]: #fs.dir.entry.obs
239
  [fs.dir.itr.members]: #fs.dir.itr.members
240
  [fs.dir.itr.nonmembers]: #fs.dir.itr.nonmembers
241
  [fs.enum]: #fs.enum
242
  [fs.enum.copy.opts]: #fs.enum.copy.opts
243
  [fs.enum.dir.opts]: #fs.enum.dir.opts
244
- [fs.enum.file_type]: #fs.enum.file_type
245
  [fs.enum.path.format]: #fs.enum.path.format
246
  [fs.enum.perm.opts]: #fs.enum.perm.opts
247
  [fs.enum.perms]: #fs.enum.perms
248
  [fs.err.report]: #fs.err.report
249
- [fs.file_status.cons]: #fs.file_status.cons
250
- [fs.file_status.mods]: #fs.file_status.mods
251
- [fs.file_status.obs]: #fs.file_status.obs
 
252
  [fs.filesystem.syn]: #fs.filesystem.syn
253
  [fs.general]: #fs.general
254
  [fs.norm.ref]: #fs.norm.ref
255
  [fs.op.absolute]: #fs.op.absolute
256
  [fs.op.canonical]: #fs.op.canonical
257
  [fs.op.copy]: #fs.op.copy
258
- [fs.op.copy_file]: #fs.op.copy_file
259
- [fs.op.copy_symlink]: #fs.op.copy_symlink
260
- [fs.op.create_dir_symlk]: #fs.op.create_dir_symlk
261
- [fs.op.create_directories]: #fs.op.create_directories
262
- [fs.op.create_directory]: #fs.op.create_directory
263
- [fs.op.create_hard_lk]: #fs.op.create_hard_lk
264
- [fs.op.create_symlink]: #fs.op.create_symlink
265
- [fs.op.current_path]: #fs.op.current_path
266
  [fs.op.equivalent]: #fs.op.equivalent
267
  [fs.op.exists]: #fs.op.exists
268
- [fs.op.file_size]: #fs.op.file_size
269
  [fs.op.funcs]: #fs.op.funcs
270
- [fs.op.hard_lk_ct]: #fs.op.hard_lk_ct
271
- [fs.op.is_block_file]: #fs.op.is_block_file
272
- [fs.op.is_char_file]: #fs.op.is_char_file
273
- [fs.op.is_directory]: #fs.op.is_directory
274
- [fs.op.is_empty]: #fs.op.is_empty
275
- [fs.op.is_fifo]: #fs.op.is_fifo
276
- [fs.op.is_other]: #fs.op.is_other
277
- [fs.op.is_regular_file]: #fs.op.is_regular_file
278
- [fs.op.is_socket]: #fs.op.is_socket
279
- [fs.op.is_symlink]: #fs.op.is_symlink
280
- [fs.op.last_write_time]: #fs.op.last_write_time
281
  [fs.op.permissions]: #fs.op.permissions
282
  [fs.op.proximate]: #fs.op.proximate
283
- [fs.op.read_symlink]: #fs.op.read_symlink
284
  [fs.op.relative]: #fs.op.relative
285
  [fs.op.remove]: #fs.op.remove
286
- [fs.op.remove_all]: #fs.op.remove_all
287
  [fs.op.rename]: #fs.op.rename
288
- [fs.op.resize_file]: #fs.op.resize_file
289
  [fs.op.space]: #fs.op.space
290
  [fs.op.status]: #fs.op.status
291
- [fs.op.status_known]: #fs.op.status_known
292
- [fs.op.symlink_status]: #fs.op.symlink_status
293
- [fs.op.temp_dir_path]: #fs.op.temp_dir_path
294
- [fs.op.weakly_canonical]: #fs.op.weakly_canonical
295
  [fs.path.append]: #fs.path.append
296
  [fs.path.assign]: #fs.path.assign
297
  [fs.path.compare]: #fs.path.compare
298
  [fs.path.concat]: #fs.path.concat
299
  [fs.path.construct]: #fs.path.construct
300
  [fs.path.cvt]: #fs.path.cvt
301
  [fs.path.decompose]: #fs.path.decompose
302
- [fs.path.factory]: #fs.path.factory
303
  [fs.path.fmt.cvt]: #fs.path.fmt.cvt
304
  [fs.path.gen]: #fs.path.gen
305
  [fs.path.generic]: #fs.path.generic
306
  [fs.path.generic.obs]: #fs.path.generic.obs
307
  [fs.path.io]: #fs.path.io
@@ -329,28 +323,30 @@ ISO C 7.8.
329
  [ifstream.members]: #ifstream.members
330
  [input.iterators]: iterators.md#input.iterators
331
  [input.output]: #input.output
332
  [input.output.general]: #input.output.general
333
  [input.streams]: #input.streams
334
- [intro.multithread]: intro.md#intro.multithread
 
335
  [iomanip.syn]: #iomanip.syn
336
  [ios]: #ios
337
  [ios.base]: #ios.base
338
  [ios.base.callback]: #ios.base.callback
339
  [ios.base.cons]: #ios.base.cons
340
  [ios.base.locales]: #ios.base.locales
341
  [ios.base.storage]: #ios.base.storage
 
 
 
 
 
342
  [ios.members.static]: #ios.members.static
 
343
  [ios.overview]: #ios.overview
 
344
  [ios.syn]: #ios.syn
345
  [ios.types]: #ios.types
346
- [ios::Init]: #ios::Init
347
- [ios::failure]: #ios::failure
348
- [ios::fmtflags]: #ios::fmtflags
349
- [ios::iostate]: #ios::iostate
350
- [ios::openmode]: #ios::openmode
351
- [ios::seekdir]: #ios::seekdir
352
  [iosfwd.syn]: #iosfwd.syn
353
  [iostate.flags]: #iostate.flags
354
  [iostream.assign]: #iostream.assign
355
  [iostream.cons]: #iostream.cons
356
  [iostream.dest]: #iostream.dest
@@ -363,32 +359,34 @@ ISO C 7.8.
363
  [iostream.syn]: #iostream.syn
364
  [iostreamclass]: #iostreamclass
365
  [iostreams.base]: #iostreams.base
366
  [iostreams.limits.pos]: #iostreams.limits.pos
367
  [iostreams.requirements]: #iostreams.requirements
 
368
  [iostreams.threadsafety]: #iostreams.threadsafety
369
  [istream]: #istream
370
  [istream.assign]: #istream.assign
371
  [istream.cons]: #istream.cons
372
  [istream.extractors]: #istream.extractors
373
  [istream.formatted]: #istream.formatted
374
  [istream.formatted.arithmetic]: #istream.formatted.arithmetic
375
  [istream.formatted.reqmts]: #istream.formatted.reqmts
376
  [istream.manip]: #istream.manip
377
  [istream.rvalue]: #istream.rvalue
 
378
  [istream.syn]: #istream.syn
379
  [istream.unformatted]: #istream.unformatted
380
- [istream::sentry]: #istream::sentry
381
  [istringstream]: #istringstream
382
  [istringstream.assign]: #istringstream.assign
383
  [istringstream.cons]: #istringstream.cons
384
  [istringstream.members]: #istringstream.members
385
  [lex.charset]: lex.md#lex.charset
386
  [locale.codecvt.virtuals]: localization.md#locale.codecvt.virtuals
387
  [locale.num.get]: localization.md#locale.num.get
 
388
  [narrow.stream.objects]: #narrow.stream.objects
389
- [numeric.limits]: language.md#numeric.limits
390
  [ofstream]: #ofstream
391
  [ofstream.assign]: #ofstream.assign
392
  [ofstream.cons]: #ofstream.cons
393
  [ofstream.members]: #ofstream.members
394
  [ostream]: #ostream
@@ -400,13 +398,13 @@ ISO C 7.8.
400
  [ostream.inserters.arithmetic]: #ostream.inserters.arithmetic
401
  [ostream.inserters.character]: #ostream.inserters.character
402
  [ostream.manip]: #ostream.manip
403
  [ostream.rvalue]: #ostream.rvalue
404
  [ostream.seeks]: #ostream.seeks
 
405
  [ostream.syn]: #ostream.syn
406
  [ostream.unformatted]: #ostream.unformatted
407
- [ostream::sentry]: #ostream::sentry
408
  [ostringstream]: #ostringstream
409
  [ostringstream.assign]: #ostringstream.assign
410
  [ostringstream.cons]: #ostringstream.cons
411
  [ostringstream.members]: #ostringstream.members
412
  [output.streams]: #output.streams
@@ -442,60 +440,49 @@ ISO C 7.8.
442
  [string.streams]: #string.streams
443
  [stringbuf]: #stringbuf
444
  [stringbuf.assign]: #stringbuf.assign
445
  [stringbuf.cons]: #stringbuf.cons
446
  [stringbuf.members]: #stringbuf.members
 
 
447
  [stringbuf.virtuals]: #stringbuf.virtuals
448
  [strings]: strings.md#strings
449
  [stringstream]: #stringstream
450
  [stringstream.assign]: #stringstream.assign
451
  [stringstream.cons]: #stringstream.cons
452
  [stringstream.members]: #stringstream.members
453
- [tab:enum.path.format]: #tab:enum.path.format
454
- [tab:enum.perm_options]: #tab:enum.perm_options
455
- [tab:filesystem_error.1]: #tab:filesystem_error.1
456
- [tab:filesystem_error.2]: #tab:filesystem_error.2
457
- [tab:filesystem_error.3]: #tab:filesystem_error.3
458
- [tab:fs.enum.copy_options]: #tab:fs.enum.copy_options
459
- [tab:fs.enum.directory_options]: #tab:fs.enum.directory_options
460
- [tab:fs.enum.file_type]: #tab:fs.enum.file_type
461
- [tab:fs.enum.perms]: #tab:fs.enum.perms
462
- [tab:iostreams.basicios.init.effects]: #tab:iostreams.basicios.init.effects
463
- [tab:iostreams.copyfmt.effects]: #tab:iostreams.copyfmt.effects
464
- [tab:iostreams.file.open.modes]: #tab:iostreams.file.open.modes
465
- [tab:iostreams.fmtflags.constants]: #tab:iostreams.fmtflags.constants
466
- [tab:iostreams.fmtflags.effects]: #tab:iostreams.fmtflags.effects
467
- [tab:iostreams.iostate.effects]: #tab:iostreams.iostate.effects
468
- [tab:iostreams.lib.summary]: #tab:iostreams.lib.summary
469
- [tab:iostreams.newoff.values]: #tab:iostreams.newoff.values
470
- [tab:iostreams.openmode.effects]: #tab:iostreams.openmode.effects
471
- [tab:iostreams.position.requirements]: #tab:iostreams.position.requirements
472
- [tab:iostreams.seekdir.effects]: #tab:iostreams.seekdir.effects
473
- [tab:iostreams.seekoff.effects]: #tab:iostreams.seekoff.effects
474
- [tab:iostreams.seekoff.positioning]: #tab:iostreams.seekoff.positioning
475
  [temp.deduct]: temp.md#temp.deduct
476
- [time.clock.req]: utilities.md#time.clock.req
477
  [wide.stream.objects]: #wide.stream.objects
478
 
479
  [^1]: It is the implementation’s responsibility to implement headers so
480
  that including `<iosfwd>` and other headers does not violate the
481
  rules about multiple occurrences of default arguments.
482
 
483
- [^2]: If it is possible for them to do so, implementations are
484
- encouraged to initialize the objects earlier than required.
485
 
486
- [^3]: Constructors and destructors for static objects can access these
487
- objects to read input from `stdin` or write output to `stdout` or
488
- `stderr`.
489
 
490
  [^4]: Typically `long long`.
491
 
492
  [^5]: `streamsize` is used in most places where ISO C would use
493
- `size_t`. Most of the uses of `streamsize` could use `size_t`,
494
- except for the `strstreambuf` constructors, which require negative
495
- values. It should probably be the signed type corresponding to
496
- `size_t` (which is what Posix.2 calls `ssize_t`).
497
 
498
  [^6]: This implies that operations on a standard iostream object can be
499
  mixed arbitrarily with operations on the corresponding stdio stream.
500
  In practical terms, synchronization usually means that a standard
501
  iostream object and a standard stdio object share a buffer.
@@ -503,13 +490,13 @@ ISO C 7.8.
503
  [^7]: An implementation is free to implement both the integer array
504
  pointed at by `iarray` and the pointer array pointed at by `parray`
505
  as sparse data structures, possibly with a one-element cache for
506
  each.
507
 
508
- [^8]: for example, because it cannot allocate space.
509
 
510
- [^9]: for example, because it cannot allocate space.
511
 
512
  [^10]: This suggests an infinite amount of copying, but the
513
  implementation can keep track of the maximum element of the arrays
514
  that is nonzero.
515
 
@@ -545,22 +532,22 @@ ISO C 7.8.
545
 
546
  [^18]: This will be possible only in functions that are part of the
547
  library. The semantics of the constructor used in user code is as
548
  specified.
549
 
550
- [^19]: The sentry constructor and destructor can also perform additional
551
- implementation-dependent operations.
552
 
553
- [^20]: This is done without causing an `ios::failure` to be thrown.
554
 
555
  [^21]: See, for example, the function signature
556
- `ws(basic_istream&)` ([[istream.manip]]).
557
 
558
  [^22]: See, for example, the function signature
559
- `dec(ios_base&)` ([[basefield.manip]]).
560
 
561
- [^23]: This is done without causing an `ios::failure` to be thrown.
562
 
563
  [^24]: Note that this function is not overloaded on types `signed char`
564
  and `unsigned char`.
565
 
566
  [^25]: Note that this function is not overloaded on types `signed char`
@@ -586,19 +573,19 @@ ISO C 7.8.
586
  function can determine that no synchronization is necessary.
587
 
588
  [^32]: The `sentry` constructor and destructor can also perform
589
  additional implementation-dependent operations.
590
 
591
- [^33]: without causing an `ios::failure` to be thrown.
592
 
593
  [^34]: See, for example, the function signature
594
- `endl(basic_ostream&)` ([[ostream.manip]]).
595
 
596
  [^35]: See, for example, the function signature
597
- `dec(ios_base&)` ([[basefield.manip]]).
598
 
599
- [^36]: without causing an `ios::failure` to be thrown.
600
 
601
  [^37]: Note that this function is not overloaded on types `signed char`
602
  and `unsigned char`.
603
 
604
  [^38]: Note that this function is not overloaded on types `signed char`
@@ -613,11 +600,11 @@ ISO C 7.8.
613
  `basic_ostream<charT, traits>` object `cout` (the same as
614
  `cout << noshowbase`).
615
 
616
  [^40]: The macro `SEEK_END` is defined, and the function signatures
617
  `fopen(const char*, const char*)` and `fseek(FILE*, long, int)` are
618
- declared, in `<cstdio>` ([[cstdio.syn]]).
619
 
620
  [^41]: POSIX® is a registered trademark of The IEEE. Windows® is a
621
  registered trademark of Microsoft Corporation. This information is
622
  given for the convenience of users of this document and does not
623
  constitute an endorsement by ISO or IEC of these products.
 
26
  #define stdin see below
27
  #define stdout see below
28
 
29
  namespace std {
30
  int remove(const char* filename);
31
+ int rename(const char* old_p, const char* new_p);
32
  FILE* tmpfile();
33
  char* tmpnam(char* s);
34
  int fclose(FILE* stream);
35
  int fflush(FILE* stream);
36
  FILE* fopen(const char* filename, const char* mode);
 
77
 
78
  The contents and meaning of the header `<cstdio>` are the same as the C
79
  standard library header `<stdio.h>`.
80
 
81
  Calls to the function `tmpnam` with an argument that is a null pointer
82
+ value may introduce a data race [[res.on.data.races]] with other calls
83
+ to `tmpnam` with an argument that is a null pointer value.
84
 
85
+ See also: ISO C 7.21
86
 
87
  ### Header `<cinttypes>` synopsis <a id="cinttypes.syn">[[cinttypes.syn]]</a>
88
 
89
  ``` cpp
90
  #include <cstdint> // see [cstdint.syn]
 
163
  The contents and meaning of the header `<cinttypes>` are the same as the
164
  C standard library header `<inttypes.h>`, with the following changes:
165
 
166
  - The header `<cinttypes>` includes the header `<cstdint>` instead of
167
  `<stdint.h>`, and
168
+ - if and only if the type `intmax_t` designates an extended integer type
169
+ [[basic.fundamental]], the following function signatures are added:
 
170
  ``` cpp
171
  intmax_t abs(intmax_t);
172
  imaxdiv_t div(intmax_t, intmax_t);
173
  ```
174
 
175
  which shall have the same semantics as the function signatures
176
  `intmax_t imaxabs(intmax_t)` and
177
  `imaxdiv_t imaxdiv(intmax_t, intmax_t)`, respectively.
178
 
179
+ See also: ISO C 7.8
180
 
181
  <!-- Link reference definitions -->
182
  [adjustfield.manip]: #adjustfield.manip
 
183
  [basefield.manip]: #basefield.manip
184
  [basic.fundamental]: basic.md#basic.fundamental
185
  [basic.ios.cons]: #basic.ios.cons
186
+ [basic.ios.copyfmt]: #basic.ios.copyfmt
187
  [basic.ios.members]: #basic.ios.members
188
  [basic.start.main]: basic.md#basic.start.main
189
  [bidirectional.iterators]: iterators.md#bidirectional.iterators
190
  [bitmask.types]: library.md#bitmask.types
191
  [c.files]: #c.files
192
+ [char.traits]: strings.md#char.traits
193
  [cinttypes.syn]: #cinttypes.syn
194
+ [container.requirements.general]: containers.md#container.requirements.general
195
+ [cpp17.allocator]: #cpp17.allocator
196
+ [cpp17.copyassignable]: #cpp17.copyassignable
197
+ [cpp17.copyconstructible]: #cpp17.copyconstructible
198
+ [cpp17.defaultconstructible]: #cpp17.defaultconstructible
199
+ [cpp17.destructible]: #cpp17.destructible
200
+ [cpp17.equalitycomparable]: #cpp17.equalitycomparable
201
  [cstdio.syn]: #cstdio.syn
202
  [defns.ntcts]: library.md#defns.ntcts
203
  [enumerated.types]: library.md#enumerated.types
204
  [error.reporting]: #error.reporting
205
  [ext.manip]: #ext.manip
 
206
  [file.streams]: #file.streams
207
  [filebuf]: #filebuf
208
  [filebuf.assign]: #filebuf.assign
209
  [filebuf.cons]: #filebuf.cons
210
  [filebuf.members]: #filebuf.members
211
+ [filebuf.open.modes]: #filebuf.open.modes
212
+ [filebuf.seekoff]: #filebuf.seekoff
213
  [filebuf.virtuals]: #filebuf.virtuals
 
214
  [filesystems]: #filesystems
215
  [floatfield.manip]: #floatfield.manip
216
  [fmtflags.manip]: #fmtflags.manip
217
  [fmtflags.state]: #fmtflags.state
218
  [fpos]: #fpos
219
  [fpos.members]: #fpos.members
220
  [fpos.operations]: #fpos.operations
221
+ [fs.class.directory.entry]: #fs.class.directory.entry
222
+ [fs.class.directory.iterator]: #fs.class.directory.iterator
223
+ [fs.class.file.status]: #fs.class.file.status
224
+ [fs.class.filesystem.error]: #fs.class.filesystem.error
225
  [fs.class.path]: #fs.class.path
226
  [fs.class.rec.dir.itr]: #fs.class.rec.dir.itr
227
  [fs.conform.9945]: #fs.conform.9945
228
  [fs.conform.os]: #fs.conform.os
229
  [fs.conformance]: #fs.conformance
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  [fs.dir.entry.cons]: #fs.dir.entry.cons
231
  [fs.dir.entry.mods]: #fs.dir.entry.mods
232
  [fs.dir.entry.obs]: #fs.dir.entry.obs
233
  [fs.dir.itr.members]: #fs.dir.itr.members
234
  [fs.dir.itr.nonmembers]: #fs.dir.itr.nonmembers
235
  [fs.enum]: #fs.enum
236
  [fs.enum.copy.opts]: #fs.enum.copy.opts
237
  [fs.enum.dir.opts]: #fs.enum.dir.opts
238
+ [fs.enum.file.type]: #fs.enum.file.type
239
  [fs.enum.path.format]: #fs.enum.path.format
240
  [fs.enum.perm.opts]: #fs.enum.perm.opts
241
  [fs.enum.perms]: #fs.enum.perms
242
  [fs.err.report]: #fs.err.report
243
+ [fs.file.status.cons]: #fs.file.status.cons
244
+ [fs.file.status.mods]: #fs.file.status.mods
245
+ [fs.file.status.obs]: #fs.file.status.obs
246
+ [fs.filesystem.error.members]: #fs.filesystem.error.members
247
  [fs.filesystem.syn]: #fs.filesystem.syn
248
  [fs.general]: #fs.general
249
  [fs.norm.ref]: #fs.norm.ref
250
  [fs.op.absolute]: #fs.op.absolute
251
  [fs.op.canonical]: #fs.op.canonical
252
  [fs.op.copy]: #fs.op.copy
253
+ [fs.op.copy.file]: #fs.op.copy.file
254
+ [fs.op.copy.symlink]: #fs.op.copy.symlink
255
+ [fs.op.create.dir.symlk]: #fs.op.create.dir.symlk
256
+ [fs.op.create.directories]: #fs.op.create.directories
257
+ [fs.op.create.directory]: #fs.op.create.directory
258
+ [fs.op.create.hard.lk]: #fs.op.create.hard.lk
259
+ [fs.op.create.symlink]: #fs.op.create.symlink
260
+ [fs.op.current.path]: #fs.op.current.path
261
  [fs.op.equivalent]: #fs.op.equivalent
262
  [fs.op.exists]: #fs.op.exists
263
+ [fs.op.file.size]: #fs.op.file.size
264
  [fs.op.funcs]: #fs.op.funcs
265
+ [fs.op.hard.lk.ct]: #fs.op.hard.lk.ct
266
+ [fs.op.is.block.file]: #fs.op.is.block.file
267
+ [fs.op.is.char.file]: #fs.op.is.char.file
268
+ [fs.op.is.directory]: #fs.op.is.directory
269
+ [fs.op.is.empty]: #fs.op.is.empty
270
+ [fs.op.is.fifo]: #fs.op.is.fifo
271
+ [fs.op.is.other]: #fs.op.is.other
272
+ [fs.op.is.regular.file]: #fs.op.is.regular.file
273
+ [fs.op.is.socket]: #fs.op.is.socket
274
+ [fs.op.is.symlink]: #fs.op.is.symlink
275
+ [fs.op.last.write.time]: #fs.op.last.write.time
276
  [fs.op.permissions]: #fs.op.permissions
277
  [fs.op.proximate]: #fs.op.proximate
278
+ [fs.op.read.symlink]: #fs.op.read.symlink
279
  [fs.op.relative]: #fs.op.relative
280
  [fs.op.remove]: #fs.op.remove
281
+ [fs.op.remove.all]: #fs.op.remove.all
282
  [fs.op.rename]: #fs.op.rename
283
+ [fs.op.resize.file]: #fs.op.resize.file
284
  [fs.op.space]: #fs.op.space
285
  [fs.op.status]: #fs.op.status
286
+ [fs.op.status.known]: #fs.op.status.known
287
+ [fs.op.symlink.status]: #fs.op.symlink.status
288
+ [fs.op.temp.dir.path]: #fs.op.temp.dir.path
289
+ [fs.op.weakly.canonical]: #fs.op.weakly.canonical
290
  [fs.path.append]: #fs.path.append
291
  [fs.path.assign]: #fs.path.assign
292
  [fs.path.compare]: #fs.path.compare
293
  [fs.path.concat]: #fs.path.concat
294
  [fs.path.construct]: #fs.path.construct
295
  [fs.path.cvt]: #fs.path.cvt
296
  [fs.path.decompose]: #fs.path.decompose
 
297
  [fs.path.fmt.cvt]: #fs.path.fmt.cvt
298
  [fs.path.gen]: #fs.path.gen
299
  [fs.path.generic]: #fs.path.generic
300
  [fs.path.generic.obs]: #fs.path.generic.obs
301
  [fs.path.io]: #fs.path.io
 
323
  [ifstream.members]: #ifstream.members
324
  [input.iterators]: iterators.md#input.iterators
325
  [input.output]: #input.output
326
  [input.output.general]: #input.output.general
327
  [input.streams]: #input.streams
328
+ [intro.multithread]: basic.md#intro.multithread
329
+ [intro.races]: basic.md#intro.races
330
  [iomanip.syn]: #iomanip.syn
331
  [ios]: #ios
332
  [ios.base]: #ios.base
333
  [ios.base.callback]: #ios.base.callback
334
  [ios.base.cons]: #ios.base.cons
335
  [ios.base.locales]: #ios.base.locales
336
  [ios.base.storage]: #ios.base.storage
337
+ [ios.failure]: #ios.failure
338
+ [ios.fmtflags]: #ios.fmtflags
339
+ [ios.fmtflags.const]: #ios.fmtflags.const
340
+ [ios.init]: #ios.init
341
+ [ios.iostate]: #ios.iostate
342
  [ios.members.static]: #ios.members.static
343
+ [ios.openmode]: #ios.openmode
344
  [ios.overview]: #ios.overview
345
+ [ios.seekdir]: #ios.seekdir
346
  [ios.syn]: #ios.syn
347
  [ios.types]: #ios.types
 
 
 
 
 
 
348
  [iosfwd.syn]: #iosfwd.syn
349
  [iostate.flags]: #iostate.flags
350
  [iostream.assign]: #iostream.assign
351
  [iostream.cons]: #iostream.cons
352
  [iostream.dest]: #iostream.dest
 
359
  [iostream.syn]: #iostream.syn
360
  [iostreamclass]: #iostreamclass
361
  [iostreams.base]: #iostreams.base
362
  [iostreams.limits.pos]: #iostreams.limits.pos
363
  [iostreams.requirements]: #iostreams.requirements
364
+ [iostreams.summary]: #iostreams.summary
365
  [iostreams.threadsafety]: #iostreams.threadsafety
366
  [istream]: #istream
367
  [istream.assign]: #istream.assign
368
  [istream.cons]: #istream.cons
369
  [istream.extractors]: #istream.extractors
370
  [istream.formatted]: #istream.formatted
371
  [istream.formatted.arithmetic]: #istream.formatted.arithmetic
372
  [istream.formatted.reqmts]: #istream.formatted.reqmts
373
  [istream.manip]: #istream.manip
374
  [istream.rvalue]: #istream.rvalue
375
+ [istream.sentry]: #istream.sentry
376
  [istream.syn]: #istream.syn
377
  [istream.unformatted]: #istream.unformatted
 
378
  [istringstream]: #istringstream
379
  [istringstream.assign]: #istringstream.assign
380
  [istringstream.cons]: #istringstream.cons
381
  [istringstream.members]: #istringstream.members
382
  [lex.charset]: lex.md#lex.charset
383
  [locale.codecvt.virtuals]: localization.md#locale.codecvt.virtuals
384
  [locale.num.get]: localization.md#locale.num.get
385
+ [namespace.std]: library.md#namespace.std
386
  [narrow.stream.objects]: #narrow.stream.objects
387
+ [numeric.limits]: support.md#numeric.limits
388
  [ofstream]: #ofstream
389
  [ofstream.assign]: #ofstream.assign
390
  [ofstream.cons]: #ofstream.cons
391
  [ofstream.members]: #ofstream.members
392
  [ostream]: #ostream
 
398
  [ostream.inserters.arithmetic]: #ostream.inserters.arithmetic
399
  [ostream.inserters.character]: #ostream.inserters.character
400
  [ostream.manip]: #ostream.manip
401
  [ostream.rvalue]: #ostream.rvalue
402
  [ostream.seeks]: #ostream.seeks
403
+ [ostream.sentry]: #ostream.sentry
404
  [ostream.syn]: #ostream.syn
405
  [ostream.unformatted]: #ostream.unformatted
 
406
  [ostringstream]: #ostringstream
407
  [ostringstream.assign]: #ostringstream.assign
408
  [ostringstream.cons]: #ostringstream.cons
409
  [ostringstream.members]: #ostringstream.members
410
  [output.streams]: #output.streams
 
440
  [string.streams]: #string.streams
441
  [stringbuf]: #stringbuf
442
  [stringbuf.assign]: #stringbuf.assign
443
  [stringbuf.cons]: #stringbuf.cons
444
  [stringbuf.members]: #stringbuf.members
445
+ [stringbuf.seekoff.newoff]: #stringbuf.seekoff.newoff
446
+ [stringbuf.seekoff.pos]: #stringbuf.seekoff.pos
447
  [stringbuf.virtuals]: #stringbuf.virtuals
448
  [strings]: strings.md#strings
449
  [stringstream]: #stringstream
450
  [stringstream.assign]: #stringstream.assign
451
  [stringstream.cons]: #stringstream.cons
452
  [stringstream.members]: #stringstream.members
453
+ [syncstream]: #syncstream
454
+ [syncstream.osyncstream]: #syncstream.osyncstream
455
+ [syncstream.osyncstream.cons]: #syncstream.osyncstream.cons
456
+ [syncstream.osyncstream.members]: #syncstream.osyncstream.members
457
+ [syncstream.osyncstream.overview]: #syncstream.osyncstream.overview
458
+ [syncstream.syn]: #syncstream.syn
459
+ [syncstream.syncbuf]: #syncstream.syncbuf
460
+ [syncstream.syncbuf.assign]: #syncstream.syncbuf.assign
461
+ [syncstream.syncbuf.cons]: #syncstream.syncbuf.cons
462
+ [syncstream.syncbuf.members]: #syncstream.syncbuf.members
463
+ [syncstream.syncbuf.overview]: #syncstream.syncbuf.overview
464
+ [syncstream.syncbuf.special]: #syncstream.syncbuf.special
465
+ [syncstream.syncbuf.virtuals]: #syncstream.syncbuf.virtuals
 
 
 
 
 
 
 
 
 
466
  [temp.deduct]: temp.md#temp.deduct
 
467
  [wide.stream.objects]: #wide.stream.objects
468
 
469
  [^1]: It is the implementation’s responsibility to implement headers so
470
  that including `<iosfwd>` and other headers does not violate the
471
  rules about multiple occurrences of default arguments.
472
 
473
+ [^2]: If it is possible for them to do so, implementations should
474
+ initialize the objects earlier than required.
475
 
476
+ [^3]: Constructors and destructors for objects with static storage
477
+ duration can access these objects to read input from `stdin` or
478
+ write output to `stdout` or `stderr`.
479
 
480
  [^4]: Typically `long long`.
481
 
482
  [^5]: `streamsize` is used in most places where ISO C would use
483
+ `size_t`.
 
 
 
484
 
485
  [^6]: This implies that operations on a standard iostream object can be
486
  mixed arbitrarily with operations on the corresponding stdio stream.
487
  In practical terms, synchronization usually means that a standard
488
  iostream object and a standard stdio object share a buffer.
 
490
  [^7]: An implementation is free to implement both the integer array
491
  pointed at by `iarray` and the pointer array pointed at by `parray`
492
  as sparse data structures, possibly with a one-element cache for
493
  each.
494
 
495
+ [^8]: For example, because it cannot allocate space.
496
 
497
+ [^9]: For example, because it cannot allocate space.
498
 
499
  [^10]: This suggests an infinite amount of copying, but the
500
  implementation can keep track of the maximum element of the arrays
501
  that is nonzero.
502
 
 
532
 
533
  [^18]: This will be possible only in functions that are part of the
534
  library. The semantics of the constructor used in user code is as
535
  specified.
536
 
537
+ [^19]: The `sentry` constructor and destructor can also perform
538
+ additional implementation-dependent operations.
539
 
540
+ [^20]: This is done without causing an `ios_base::failure` to be thrown.
541
 
542
  [^21]: See, for example, the function signature
543
+ `ws(basic_istream&)`[[istream.manip]].
544
 
545
  [^22]: See, for example, the function signature
546
+ `dec(ios_base&)`[[basefield.manip]].
547
 
548
+ [^23]: This is done without causing an `ios_base::failure` to be thrown.
549
 
550
  [^24]: Note that this function is not overloaded on types `signed char`
551
  and `unsigned char`.
552
 
553
  [^25]: Note that this function is not overloaded on types `signed char`
 
573
  function can determine that no synchronization is necessary.
574
 
575
  [^32]: The `sentry` constructor and destructor can also perform
576
  additional implementation-dependent operations.
577
 
578
+ [^33]: without causing an `ios_base::failure` to be thrown.
579
 
580
  [^34]: See, for example, the function signature
581
+ `endl(basic_ostream&)`[[ostream.manip]].
582
 
583
  [^35]: See, for example, the function signature
584
+ `dec(ios_base&)`[[basefield.manip]].
585
 
586
+ [^36]: without causing an `ios_base::failure` to be thrown.
587
 
588
  [^37]: Note that this function is not overloaded on types `signed char`
589
  and `unsigned char`.
590
 
591
  [^38]: Note that this function is not overloaded on types `signed char`
 
600
  `basic_ostream<charT, traits>` object `cout` (the same as
601
  `cout << noshowbase`).
602
 
603
  [^40]: The macro `SEEK_END` is defined, and the function signatures
604
  `fopen(const char*, const char*)` and `fseek(FILE*, long, int)` are
605
+ declared, in `<cstdio>`.
606
 
607
  [^41]: POSIX® is a registered trademark of The IEEE. Windows® is a
608
  registered trademark of Microsoft Corporation. This information is
609
  given for the convenience of users of this document and does not
610
  constitute an endorsement by ISO or IEC of these products.