Init
This commit is contained in:
34
cppdraft/spanstream/cons.md
Normal file
34
cppdraft/spanstream/cons.md
Normal file
@@ -0,0 +1,34 @@
|
||||
[spanstream.cons]
|
||||
|
||||
# 31 Input/output library [[input.output]](./#input.output)
|
||||
|
||||
## 31.9 Span-based streams [[span.streams]](span.streams#spanstream.cons)
|
||||
|
||||
### 31.9.6 Class template basic_spanstream [[spanstream]](spanstream#cons)
|
||||
|
||||
#### 31.9.6.2 Constructors [spanstream.cons]
|
||||
|
||||
[ð](#lib:basic_spanstream,constructor)
|
||||
|
||||
`explicit basic_spanstream(std::span<charT> s,
|
||||
ios_base::openmode which = ios_base::out | ios_bas::in);
|
||||
`
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10774)
|
||||
|
||||
*Effects*: Initializes the base class withbasic_iostream<charT, traits>(addressof(*sb*)) and *sb* withbasic_spanbuf<charT, traits>(s, which) ([[spanbuf.cons]](spanbuf.cons "31.9.3.2 Constructors"))[.](#1.sentence-1)
|
||||
|
||||
[ð](#lib:basic_spanstream,constructor_)
|
||||
|
||||
`basic_spanstream(basic_spanstream&& rhs);
|
||||
`
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10788)
|
||||
|
||||
*Effects*: Initializes the base class with std::move(rhs) and *sb* with std::move(rhs.*sb*)[.](#2.sentence-1)
|
||||
|
||||
Next, basic_iostream<charT, traits>::set_rdbuf(addressof(*sb*)) is called to install the contained basic_spanbuf[.](#2.sentence-2)
|
||||
21
cppdraft/spanstream/general.md
Normal file
21
cppdraft/spanstream/general.md
Normal file
@@ -0,0 +1,21 @@
|
||||
[spanstream.general]
|
||||
|
||||
# 31 Input/output library [[input.output]](./#input.output)
|
||||
|
||||
## 31.9 Span-based streams [[span.streams]](span.streams#spanstream.general)
|
||||
|
||||
### 31.9.6 Class template basic_spanstream [[spanstream]](spanstream#general)
|
||||
|
||||
#### 31.9.6.1 General [spanstream.general]
|
||||
|
||||
[ð](#lib:basic_spanstream)
|
||||
|
||||
namespace std {template<class charT, class traits = char_traits<charT>>class basic_spanstream : public basic_iostream<charT, traits> {public:using char_type = charT; using int_type = typename traits::int_type; using pos_type = typename traits::pos_type; using off_type = typename traits::off_type; using traits_type = traits; // [[spanstream.cons]](spanstream.cons "31.9.6.2 Constructors"), constructorsexplicit basic_spanstream(std::span<charT> s,
|
||||
ios_base::openmode which = ios_base::out | ios_base::in);
|
||||
basic_spanstream(const basic_spanstream&) = delete;
|
||||
basic_spanstream(basic_spanstream&& rhs);
|
||||
|
||||
basic_spanstream& operator=(const basic_spanstream&) = delete;
|
||||
basic_spanstream& operator=(basic_spanstream&& rhs); // [[spanstream.swap]](spanstream.swap "31.9.6.3 Swap"), swapvoid swap(basic_spanstream& rhs); // [[spanstream.members]](spanstream.members "31.9.6.4 Member functions"), members basic_spanbuf<charT, traits>* rdbuf() const noexcept;
|
||||
|
||||
std::span<charT> span() const noexcept; void span(std::span<charT> s) noexcept; private: basic_spanbuf<charT, traits> *sb*; // *exposition only*};}
|
||||
42
cppdraft/spanstream/members.md
Normal file
42
cppdraft/spanstream/members.md
Normal file
@@ -0,0 +1,42 @@
|
||||
[spanstream.members]
|
||||
|
||||
# 31 Input/output library [[input.output]](./#input.output)
|
||||
|
||||
## 31.9 Span-based streams [[span.streams]](span.streams#spanstream.members)
|
||||
|
||||
### 31.9.6 Class template basic_spanstream [[spanstream]](spanstream#members)
|
||||
|
||||
#### 31.9.6.4 Member functions [spanstream.members]
|
||||
|
||||
[ð](#lib:rdbuf,basic_spanstream)
|
||||
|
||||
`basic_spanbuf<charT, traits>* rdbuf() const noexcept;
|
||||
`
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10833)
|
||||
|
||||
*Effects*: Equivalent to:return const_cast<basic_spanbuf<charT, traits>*>(addressof(*sb*));
|
||||
|
||||
[ð](#lib:span,basic_spanstream)
|
||||
|
||||
`std::span<charT> span() const noexcept;
|
||||
`
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10847)
|
||||
|
||||
*Effects*: Equivalent to: return rdbuf()->span();
|
||||
|
||||
[ð](#lib:span,basic_spanstream_)
|
||||
|
||||
`void span(std::span<charT> s) noexcept;
|
||||
`
|
||||
|
||||
[3](#3)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10858)
|
||||
|
||||
*Effects*: Equivalent to rdbuf()->span(s)[.](#3.sentence-1)
|
||||
32
cppdraft/spanstream/swap.md
Normal file
32
cppdraft/spanstream/swap.md
Normal file
@@ -0,0 +1,32 @@
|
||||
[spanstream.swap]
|
||||
|
||||
# 31 Input/output library [[input.output]](./#input.output)
|
||||
|
||||
## 31.9 Span-based streams [[span.streams]](span.streams#spanstream.swap)
|
||||
|
||||
### 31.9.6 Class template basic_spanstream [[spanstream]](spanstream#swap)
|
||||
|
||||
#### 31.9.6.3 Swap [spanstream.swap]
|
||||
|
||||
[ð](#lib:swap,basic_spanstream)
|
||||
|
||||
`void swap(basic_spanstream& rhs);
|
||||
`
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10804)
|
||||
|
||||
*Effects*: Equivalent to:basic_iostream<charT, traits>::swap(rhs);*sb*.swap(rhs.*sb*);
|
||||
|
||||
[ð](#lib:swap,basic_spanstream_)
|
||||
|
||||
`template<class charT, class traits>
|
||||
void swap(basic_spanstream<charT, traits>& x, basic_spanstream<charT, traits>& y);
|
||||
`
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10820)
|
||||
|
||||
*Effects*: Equivalent to x.swap(y)[.](#2.sentence-1)
|
||||
11
cppdraft/spanstream/syn.md
Normal file
11
cppdraft/spanstream/syn.md
Normal file
@@ -0,0 +1,11 @@
|
||||
[spanstream.syn]
|
||||
|
||||
# 31 Input/output library [[input.output]](./#input.output)
|
||||
|
||||
## 31.9 Span-based streams [[span.streams]](span.streams#spanstream.syn)
|
||||
|
||||
### 31.9.2 Header <spanstream> synopsis [spanstream.syn]
|
||||
|
||||
[ð](#lib:spanbuf)
|
||||
|
||||
namespace std {// [[spanbuf]](spanbuf "31.9.3 Class template basic_spanbuf"), class template basic_spanbuftemplate<class charT, class traits = char_traits<charT>>class basic_spanbuf; template<class charT, class traits>void swap(basic_spanbuf<charT, traits>& x, basic_spanbuf<charT, traits>& y); using spanbuf = basic_spanbuf<char>; using wspanbuf = basic_spanbuf<wchar_t>; // [[ispanstream]](ispanstream "31.9.4 Class template basic_ispanstream"), class template basic_ispanstreamtemplate<class charT, class traits = char_traits<charT>>class basic_ispanstream; template<class charT, class traits>void swap(basic_ispanstream<charT, traits>& x, basic_ispanstream<charT, traits>& y); using ispanstream = basic_ispanstream<char>; using wispanstream = basic_ispanstream<wchar_t>; // [[ospanstream]](ospanstream "31.9.5 Class template basic_ospanstream"), class template basic_ospanstreamtemplate<class charT, class traits = char_traits<charT>>class basic_ospanstream; template<class charT, class traits>void swap(basic_ospanstream<charT, traits>& x, basic_ospanstream<charT, traits>& y); using ospanstream = basic_ospanstream<char>; using wospanstream = basic_ospanstream<wchar_t>; // [[spanstream]](spanstream "31.9.6 Class template basic_spanstream"), class template basic_spanstreamtemplate<class charT, class traits = char_traits<charT>>class basic_spanstream; template<class charT, class traits>void swap(basic_spanstream<charT, traits>& x, basic_spanstream<charT, traits>& y); using spanstream = basic_spanstream<char>; using wspanstream = basic_spanstream<wchar_t>;}
|
||||
Reference in New Issue
Block a user