std::basic_spanbuf

std::basic_spanbuf (고정 버퍼 스트림 버퍼)

연관 문자 시퀀스가 메모리에 있는 임의 문자 시퀀스인 std::basic_streambuf예요. std::span<CharT> 인스턴스로 초기화되거나 그렇게 만들 수 있어요. C++23부터 있어요.

출처: cppreference

본문

<spanstream> 헤더에 정의돼 있어요.

template<
    class CharT,
    class Traits = std::char_traits<CharT>
> class basic_spanbuf
    : public std::basic_streambuf<CharT, Traits>;

std::basic_spanbuf는 연관 문자 시퀀스가 메모리에 있는 임의 문자 시퀀스인 std::basic_streambuf예요. std::span<CharT> 인스턴스로 초기화되거나 그렇게 만들 수 있어요. std::basic_spanbuf는 고정 버퍼에 대해 I/O를 수행하므로, 기반 버퍼가 소진되면 새 버퍼를 얻으려 시도하지 않아요.

공통 문자 타입 typedef

  • std::spanbufstd::basic_spanbuf<char>
  • std::wspanbufstd::basic_spanbuf<wchar_t>

멤버 타입

  • char_type, traits_type, int_type, pos_type, off_type.

멤버 함수

  • (constructor) — spanbuf를 생성해요.
  • span — 기본 버퍼의 std::span을 얻거나 설정해요.
  • underflow / pbackfail / overflow / seekoff / seekpos / setbuf — 버퍼 연산.

예제

#include <spanstream>
#include <iostream>

int main()
{
    char buf[64]{};
    std::spanbuf sb(std::span<char>(buf));
    std::ostream os(&sb);
    os << "Hello, spanbuf!";
    std::cout << buf << '\n'; // "Hello, spanbuf!"
}

더 알아보기 (Learn more)

cppreference