From Jason Turner

[iostreams.requirements]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp2pitin09/{from.md → to.md} +17 -18
tmp/tmp2pitin09/{from.md → to.md} RENAMED
@@ -1,40 +1,39 @@
1
  ## Iostreams requirements <a id="iostreams.requirements">[[iostreams.requirements]]</a>
2
 
3
  ### Imbue limitations <a id="iostream.limits.imbue">[[iostream.limits.imbue]]</a>
4
 
5
- No function described in Clause  [[input.output]] except for
6
- `ios_base::imbue` and `basic_filebuf::pubimbue` causes any instance of
7
- `basic_ios::imbue` or `basic_streambuf::imbue` to be called. If any user
8
- function called from a function declared in Clause  [[input.output]] or
9
- as an overriding virtual function of any class declared in Clause 
10
- [[input.output]] calls `imbue`, the behavior is undefined.
11
 
12
  ### Positioning type limitations <a id="iostreams.limits.pos">[[iostreams.limits.pos]]</a>
13
 
14
- The classes of Clause  [[input.output]] with template arguments `charT`
15
- and `traits` behave as described if `traits::pos_type` and
16
  `traits::off_type` are `streampos` and `streamoff` respectively. Except
17
  as noted explicitly below, their behavior when `traits::pos_type` and
18
  `traits::off_type` are other types is *implementation-defined*.
19
 
20
- In the classes of Clause  [[input.output]], a template parameter with
21
- name `charT` represents a member of the set of types containing `char`,
22
  `wchar_t`, and any other *implementation-defined* character types that
23
- satisfy the requirements for a character on which any of the iostream
24
  components can be instantiated.
25
 
26
  ### Thread safety <a id="iostreams.threadsafety">[[iostreams.threadsafety]]</a>
27
 
28
- Concurrent access to a stream object ([[string.streams]], 
29
- [[file.streams]]), stream buffer object ([[stream.buffers]]), or C
30
- Library stream ([[c.files]]) by multiple threads may result in a data
31
- race ([[intro.multithread]]) unless otherwise specified (
32
- [[iostream.objects]]).
33
 
34
- [*Note 1*: Data races result in undefined behavior (
35
- [[intro.multithread]]). — *end note*]
36
 
37
  If one thread makes a library call *a* that writes a value to a stream
38
  and, as a result, another thread reads this value from the stream
39
  through a library call *b* such that this does not result in a data
40
  race, then *a*’s write synchronizes with *b*’s read.
 
1
  ## Iostreams requirements <a id="iostreams.requirements">[[iostreams.requirements]]</a>
2
 
3
  ### Imbue limitations <a id="iostream.limits.imbue">[[iostream.limits.imbue]]</a>
4
 
5
+ No function described in [[input.output]] except for `ios_base::imbue`
6
+ and `basic_filebuf::pubimbue` causes any instance of `basic_ios::imbue`
7
+ or `basic_streambuf::imbue` to be called. If any user function called
8
+ from a function declared in [[input.output]] or as an overriding virtual
9
+ function of any class declared in [[input.output]] calls `imbue`, the
10
+ behavior is undefined.
11
 
12
  ### Positioning type limitations <a id="iostreams.limits.pos">[[iostreams.limits.pos]]</a>
13
 
14
+ The classes of [[input.output]] with template arguments `charT` and
15
+ `traits` behave as described if `traits::pos_type` and
16
  `traits::off_type` are `streampos` and `streamoff` respectively. Except
17
  as noted explicitly below, their behavior when `traits::pos_type` and
18
  `traits::off_type` are other types is *implementation-defined*.
19
 
20
+ In the classes of [[input.output]], a template parameter with name
21
+ `charT` represents a member of the set of types containing `char`,
22
  `wchar_t`, and any other *implementation-defined* character types that
23
+ meet the requirements for a character on which any of the iostream
24
  components can be instantiated.
25
 
26
  ### Thread safety <a id="iostreams.threadsafety">[[iostreams.threadsafety]]</a>
27
 
28
+ Concurrent access to a stream object ([[string.streams]],
29
+ [[file.streams]]), stream buffer object [[stream.buffers]], or C Library
30
+ stream [[c.files]] by multiple threads may result in a data race
31
+ [[intro.multithread]] unless otherwise specified [[iostream.objects]].
 
32
 
33
+ [*Note 1*: Data races result in undefined behavior
34
+ [[intro.multithread]]. — *end note*]
35
 
36
  If one thread makes a library call *a* that writes a value to a stream
37
  and, as a result, another thread reads this value from the stream
38
  through a library call *b* such that this does not result in a data
39
  race, then *a*’s write synchronizes with *b*’s read.