- streambuf[meta header]
- std[meta namespace]
- basic_streambuf[meta class]
- function[meta id-type]
namespace std {
template<class CharT, class Traits = char_traits<CharT>>
class basic_streambuf {
protected:
virtual basic_streambuf* setbuf(char_type* s, streamsize n);
……
};
}- streamsize[link /reference/ios/type-streamsize.md]
バッファ領域を与える。
デフォルトでは何もしない。(オーバーライドした関数の具体的な動作はそのクラスに委ねられる。)
*this。
#include <iostream>
#include <sstream>
int main() {
char buf[32] = {};
std::stringstream ss;
ss.rdbuf()->pubsetbuf(buf, sizeof(buf)); // std::stringstreamのsetbuf()が呼ばれる
ss << "ABC";
std::cout << buf << std::endl;
}ABC
- C++98