Standard library header <spanstream> (C++23)
From cppreference.net
이 헤더는 Input/Output 라이브러리의 일부입니다.
클래스 |
||
|
(C++23)
|
원시 고정 문자 버퍼 장치를 구현함
(클래스 템플릿) |
|
|
(C++23)
|
고정 문자 버퍼 입력 연산을 구현함
(클래스 템플릿) |
|
|
(C++23)
|
고정된 문자 버퍼 출력 연산을 구현함
(클래스 템플릿) |
|
|
(C++23)
|
고정된 문자 버퍼 입력/출력 연산을 구현함
(클래스 템플릿) |
|
spanbuf
(C++23)
|
std::
basic_spanbuf
<
char
>
(typedef) |
|
wspanbuf
(C++23)
|
std::
basic_spanbuf
<
wchar_t
>
(typedef) |
|
ispanstream
(C++23)
|
std::
basic_ispanstream
<
char
>
(typedef) |
|
wispanstream
(C++23)
|
std::
basic_ispanstream
<
wchar_t
>
(typedef) |
|
ospanstream
(C++23)
|
std::
basic_ospanstream
<
char
>
(typedef) |
|
wospanstream
(C++23)
|
std::
basic_ospanstream
<
wchar_t
>
(typedef) |
|
spanstream
(C++23)
|
std::
basic_spanstream
<
char
>
(typedef) |
|
wspanstream
(C++23)
|
std::
basic_spanstream
<
wchar_t
>
(typedef) |
|
함수 |
||
|
(C++23)
|
std::swap
알고리즘을 특수화합니다
(함수 템플릿) |
|
|
std::swap
알고리즘을 특수화합니다
(함수 템플릿) |
||
|
std::swap
알고리즘을 특수화합니다
(함수 템플릿) |
||
|
std::swap
알고리즘을 특수화합니다
(함수 템플릿) |
||
시놉시스
namespace std { template<class CharT, class Traits = char_traits<CharT>> class basic_spanbuf; using spanbuf = basic_spanbuf<char>; using wspanbuf = basic_spanbuf<wchar_t>; template<class CharT, class Traits = char_traits<CharT>> class basic_ispanstream; using ispanstream = basic_ispanstream<char>; using wispanstream = basic_ispanstream<wchar_t>; template<class CharT, class Traits = char_traits<CharT>> class basic_ospanstream; using ospanstream = basic_ospanstream<char>; using wospanstream = basic_ospanstream<wchar_t>; template<class CharT, class Traits = char_traits<CharT>> class basic_spanstream; using spanstream = basic_spanstream<char>; using wspanstream = basic_spanstream<wchar_t>; }
` 태그 내에 포함되어 있습니다. 지침에 따라 코드 블록 내의 텍스트는 번역하지 않고 원본 그대로 유지되었습니다.
클래스 템플릿 std::basic_spanbuf
namespace std { template<class CharT, class Traits = char_traits<CharT>> class basic_spanbuf : public basic_streambuf<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; // 생성자 basic_spanbuf() : basic_spanbuf(ios_base::in | ios_base::out) {} explicit basic_spanbuf(ios_base::openmode which) : basic_spanbuf(std::span<CharT>(), which) {} explicit basic_spanbuf( std::span<CharT> s, ios_base::openmode which = ios_base::in | ios_base::out); basic_spanbuf(const basic_spanbuf&) = delete; basic_spanbuf(basic_spanbuf&& rhs); // 할당 및 교환 basic_spanbuf& operator=(const basic_spanbuf&) = delete; basic_spanbuf& operator=(basic_spanbuf&& rhs); void swap(basic_spanbuf& rhs); // 가져오기 및 설정 std::span<CharT> span() const noexcept; void span(std::span<CharT> s) noexcept; protected: // 재정의된 가상 함수 basic_streambuf<CharT, Traits>* setbuf(CharT*, streamsize) override; pos_type seekoff(off_type off, ios_base::seekdir way, ios_base::openmode which = ios_base::in | ios_base::out) override; pos_type seekpos(pos_type sp, ios_base::openmode which = ios_base::in | ios_base::out) override; private: ios_base::openmode mode; // 설명 전용 std::span<CharT> buf; // 설명 전용 }; template<class CharT, class Traits> void swap(basic_spanbuf<CharT, Traits>& x, basic_spanbuf<CharT, Traits>& y); }
클래스 템플릿 std::basic_ispanstream
namespace std { template<class CharT, class Traits = char_traits<CharT>> class basic_ispanstream : public basic_istream<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; // 생성자 explicit basic_ispanstream( std::span<CharT> s, ios_base::openmode which = ios_base::in); basic_ispanstream(const basic_ispanstream&) = delete; basic_ispanstream(basic_ispanstream&& rhs); template<class ROS> explicit basic_ispanstream(ROS&& s); // 할당 및 교환 basic_ispanstream& operator=(const basic_ispanstream&) = delete; basic_ispanstream& operator=(basic_ispanstream&& rhs); void swap(basic_ispanstream& rhs); // 멤버 함수 basic_spanbuf<CharT, Traits>* rdbuf() const noexcept; std::span<const CharT> span() const noexcept; void span(std::span<CharT> s) noexcept; template<class ROS> void span(ROS&& s) noexcept; private: basic_spanbuf<CharT, Traits> sb; // 설명 전용 }; template<class CharT, class Traits> void swap(basic_ispanstream<CharT, Traits>& x, basic_ispanstream<CharT, Traits>& y); }
클래스 템플릿 std::basic_ospanstream
namespace std { template<class CharT, class Traits = char_traits<CharT>> class basic_ospanstream : public basic_ostream<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; // 생성자 explicit basic_ospanstream( std::span<CharT> s, ios_base::openmode which = ios_base::out); basic_ospanstream(const basic_ospanstream&) = delete; basic_ospanstream(basic_ospanstream&& rhs); // 할당 및 교환 basic_ospanstream& operator=(const basic_ospanstream&) = delete; basic_ospanstream& operator=(basic_ospanstream&& rhs); void swap(basic_ospanstream& rhs); // 멤버 함수 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; // 설명 전용 }; template<class CharT, class Traits> void swap(basic_ospanstream<CharT, Traits>& x, basic_ospanstream<CharT, Traits>& y); }
클래스 템플릿 std::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; // 생성자 explicit 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); void swap(basic_spanstream& rhs); // 멤버 함수 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; // 설명 전용 }; template<class CharT, class Traits> void swap(basic_spanstream<CharT, Traits>& x, basic_spanstream<CharT, Traits>& y); }