[streambuf.general] (original) (raw)
31 Input/output library [input.output]
31.6 Stream buffers [stream.buffers]
31.6.3 Class template basic_streambuf [streambuf]
31.6.3.1 General [streambuf.general]
namespace std { template<class charT, class traits = char_traits<charT>> class basic_streambuf { 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;virtual ~basic_streambuf(); locale pubimbue(const locale& loc); locale getloc() const; basic_streambuf* pubsetbuf(char_type* s, streamsize n); pos_type pubseekoff(off_type off, ios_base::seekdir way, ios_base::openmode which= ios_base::in | ios_base::out); pos_type pubseekpos(pos_type sp, ios_base::openmode which= ios_base::in | ios_base::out);int pubsync(); streamsize in_avail(); int_type snextc(); int_type sbumpc(); int_type sgetc(); streamsize sgetn(char_type* s, streamsize n); int_type sputbackc(char_type c); int_type sungetc(); int_type sputc(char_type c); streamsize sputn(const char_type* s, streamsize n);protected: basic_streambuf(); basic_streambuf(const basic_streambuf& rhs); basic_streambuf& operator=(const basic_streambuf& rhs);void swap(basic_streambuf& rhs); char_type* eback() const; char_type* gptr() const; char_type* egptr() const;void gbump(int n);void setg(char_type* gbeg, char_type* gnext, char_type* gend); char_type* pbase() const; char_type* pptr() const; char_type* epptr() const;void pbump(int n);void setp(char_type* pbeg, char_type* pend);virtual void imbue(const locale& loc);virtual basic_streambuf* setbuf(char_type* s, streamsize n);virtual pos_type seekoff(off_type off, ios_base::seekdir way, ios_base::openmode which= ios_base::in | ios_base::out);virtual pos_type seekpos(pos_type sp, ios_base::openmode which= ios_base::in | ios_base::out);virtual int sync();virtual streamsize showmanyc();virtual streamsize xsgetn(char_type* s, streamsize n);virtual int_type underflow();virtual int_type uflow();virtual int_type pbackfail(int_type c = traits::eof());virtual streamsize xsputn(const char_type* s, streamsize n);virtual int_type overflow(int_type c = traits::eof());};}
The class templatebasic_streambufserves as a base class for deriving variousstream bufferswhose objects each control twocharacter sequences:
- a characterinput sequence;
- a characteroutput sequence.