From Jason Turner

[spanstream]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp05lyckth/{from.md → to.md} +104 -0
tmp/tmp05lyckth/{from.md → to.md} RENAMED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Class template `basic_spanstream` <a id="spanstream">[[spanstream]]</a>
2
+
3
+ #### General <a id="spanstream.general">[[spanstream.general]]</a>
4
+
5
+ ``` cpp
6
+ namespace std {
7
+ template<class charT, class traits = char_traits<charT>>
8
+ class basic_spanstream
9
+ : public basic_iostream<charT, traits> {
10
+ public:
11
+ using char_type = charT;
12
+ using int_type = typename traits::int_type;
13
+ using pos_type = typename traits::pos_type;
14
+ using off_type = typename traits::off_type;
15
+ using traits_type = traits;
16
+
17
+ // [spanstream.cons], constructors
18
+ explicit basic_spanstream(std::span<charT> s,
19
+ ios_base::openmode which = ios_base::out | ios_base::in);
20
+ basic_spanstream(const basic_spanstream&) = delete;
21
+ basic_spanstream(basic_spanstream&& rhs);
22
+
23
+ basic_spanstream& operator=(const basic_spanstream&) = delete;
24
+ basic_spanstream& operator=(basic_spanstream&& rhs);
25
+
26
+ // [spanstream.swap], swap
27
+ void swap(basic_spanstream& rhs);
28
+
29
+ // [spanstream.members], members
30
+ basic_spanbuf<charT, traits>* rdbuf() const noexcept;
31
+
32
+ std::span<charT> span() const noexcept;
33
+ void span(std::span<charT> s) noexcept;
34
+
35
+ private:
36
+ basic_spanbuf<charT, traits> sb; // exposition only
37
+ };
38
+ }
39
+ ```
40
+
41
+ #### Constructors <a id="spanstream.cons">[[spanstream.cons]]</a>
42
+
43
+ ``` cpp
44
+ explicit basic_spanstream(std::span<charT> s,
45
+ ios_base::openmode which = ios_base::out | ios_bas::in);
46
+ ```
47
+
48
+ *Effects:* Initializes the base class with
49
+ `basic_iostream<charT, traits>(addressof(sb))` and `sb` with
50
+ `basic_spanbuf<charT, traits>(s, which)` [[spanbuf.cons]].
51
+
52
+ ``` cpp
53
+ basic_spanstream(basic_spanstream&& rhs);
54
+ ```
55
+
56
+ *Effects:* Initializes the base class with `std::move(rhs)` and `sb`
57
+ with `std::move(rhs.sb)`. Next,
58
+ `basic_iostream<charT, traits>::set_rdbuf(addressof(sb))` is called to
59
+ install the contained `basic_spanbuf`.
60
+
61
+ #### Swap <a id="spanstream.swap">[[spanstream.swap]]</a>
62
+
63
+ ``` cpp
64
+ void swap(basic_spanstream& rhs);
65
+ ```
66
+
67
+ *Effects:* Equivalent to:
68
+
69
+ ``` cpp
70
+ basic_iostream<charT, traits>::swap(rhs);
71
+ sb.swap(rhs.sb);
72
+ ```
73
+
74
+ ``` cpp
75
+ template<class charT, class traits>
76
+ void swap(basic_spanstream<charT, traits>& x, basic_spanstream<charT, traits>& y);
77
+ ```
78
+
79
+ *Effects:* Equivalent to `x.swap(y)`.
80
+
81
+ #### Member functions <a id="spanstream.members">[[spanstream.members]]</a>
82
+
83
+ ``` cpp
84
+ basic_spanbuf<charT, traits>* rdbuf() const noexcept;
85
+ ```
86
+
87
+ *Effects:* Equivalent to:
88
+
89
+ ``` cpp
90
+ return const_cast<basic_spanbuf<charT, traits>*>(addressof(sb));
91
+ ```
92
+
93
+ ``` cpp
94
+ std::span<charT> span() const noexcept;
95
+ ```
96
+
97
+ *Effects:* Equivalent to: `return rdbuf()->span();`
98
+
99
+ ``` cpp
100
+ void span(std::span<charT> s) noexcept;
101
+ ```
102
+
103
+ *Effects:* Equivalent to `rdbuf()->span(s)`.
104
+