From Jason Turner

[iostream.forward.overview]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpb4fn858x/{from.md → to.md} +52 -0
tmp/tmpb4fn858x/{from.md → to.md} RENAMED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Overview <a id="iostream.forward.overview">[[iostream.forward.overview]]</a>
2
+
3
+ The class template specialization `basic_ios<charT, traits>` serves as a
4
+ virtual base class for the class templates `basic_istream`,
5
+ `basic_ostream`, and class templates derived from them. `basic_iostream`
6
+ is a class template derived from both `basic_istream<charT, traits>` and
7
+ `basic_ostream<charT, traits>`.
8
+
9
+ The class template specialization `basic_streambuf<charT, traits>`
10
+ serves as a base class for class templates `basic_stringbuf` and
11
+ `basic_filebuf`.
12
+
13
+ The class template specialization `basic_istream<charT, traits>` serves
14
+ as a base class for class templates `basic_istringstream` and
15
+ `basic_ifstream`.
16
+
17
+ The class template specialization `basic_ostream<charT, traits>` serves
18
+ as a base class for class templates `basic_ostringstream` and
19
+ `basic_ofstream`.
20
+
21
+ The class template specialization `basic_iostream<charT, traits>` serves
22
+ as a base class for class templates `basic_stringstream` and
23
+ `basic_fstream`.
24
+
25
+ Other *typedef-name*s define instances of class templates specialized
26
+ for `char` or `wchar_t` types.
27
+
28
+ Specializations of the class template `fpos` are used for specifying
29
+ file position information.
30
+
31
+ The types `streampos` and `wstreampos` are used for positioning streams
32
+ specialized on `char` and `wchar_t` respectively.
33
+
34
+ [*Note 1*:
35
+
36
+ This synopsis suggests a circularity between `streampos` and
37
+ `char_traits<char>`. An implementation can avoid this circularity by
38
+ substituting equivalent types. One way to do this might be
39
+
40
+ ``` cpp
41
+ template<class stateT> class fpos { ... }; // depends on nothing
42
+ using _STATE = ... ; // implementation private declaration of stateT
43
+
44
+ using streampos = fpos<_STATE>;
45
+
46
+ template<> struct char_traits<char> {
47
+ using pos_type = streampos;
48
+ }
49
+ ```
50
+
51
+ — *end note*]
52
+