From Jason Turner

[iostreams.requirements]

Diff to HTML by rtfpessoa

tmp/tmpg3o01d1_/{from.md → to.md} RENAMED
@@ -17,22 +17,24 @@ and `traits` behave as described if `traits::pos_type` and
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]]). Data races result in undefined behavior (
33
- [[intro.multithread]]).
 
 
34
 
35
  If one thread makes a library call *a* that writes a value to a stream
36
  and, as a result, another thread reads this value from the stream
37
  through a library call *b* such that this does not result in a data
38
  race, then *a*’s write synchronizes with *b*’s read.
 
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.