std::strstreambuf
std::strstreambuf (배열 스트림 버퍼)
연관 문자 시퀀스가 문자 배열인 std::basic_streambuf예요. 배열은 상수(문자열 리터럴), 수정 가능하지만 동적이지 않은(스택 배열), 또는 동적일 수 있어요. C++98에서 deprecated, C++26에서 제거됐어요.
출처: cppreference
본문
<strstream> 헤더에 정의돼 있어요.
class strstreambuf : public std::basic_streambuf<char>;
std::strstreambuf는 연관 문자 시퀀스가 문자 배열인 std::basic_streambuf예요. 배열은 상수(문자열 리터럴), 수정 가능하지만 동적이지 않은(스택 할당 배열), 또는 동적일 수 있어요. 동적인 경우 std::strstreambuf가 출력을 수용하도록 필요에 따라 배열을 재할당할 수 있어요(delete[]와 new[] 또는 사용자 제공 함수 호출). 전형적인 구현은 네 개의 private 데이터 멤버를 보관해요.
멤버 함수
- (constructor) — strstreambuf를 생성해요(여러 오버로드: 빈 버퍼, 크기 지정, 문자열 리터럴, 버퍼·크기, 동적 제어).
- (destructor) — 파괴해요(동적이라면 버퍼 해제).
- str — 버퍼를 동결하고 배열을 돌려줘요.
- freeze — 버퍼 동결·해제.
- pcount — 쓰인 문자 수.
예제
#include <strstream>
#include <iostream>
int main()
{
std::strstreambuf sbuf;
std::ostream os(&sbuf);
os << "Hello, strstreambuf!";
char* p = sbuf.str();
std::cout << p << '\n'; // "Hello, strstreambuf!"
sbuf.freeze(false);
}