...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::interprocess::basic_bufferbuf
// In header: <boost/interprocess/streams/bufferstream.hpp> template<typename CharT, typename CharTraits> class basic_bufferbuf : public std::basic_streambuf< CharT, CharTraits > { public: // types typedef CharT char_type; typedef CharTraits::int_type int_type; typedef CharTraits::pos_type pos_type; typedef CharTraits::off_type off_type; typedef CharTraits traits_type; typedef std::basic_streambuf< char_type, traits_type > basic_streambuf_t; // construct/copy/destruct explicit basic_bufferbuf(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); explicit basic_bufferbuf(CharT *, std::size_t, std::ios_base::openmode = std::ios_base::in|std::ios_base::out); ~basic_bufferbuf(); // public member functions std::pair< CharT *, std::size_t > buffer() const; void buffer(CharT *, std::size_t); };
A streambuf class that controls the transmission of elements to and from a basic_xbufferstream. The elements are transmitted from a to a fixed size buffer
basic_bufferbuf
public
construct/copy/destructexplicit basic_bufferbuf(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
Constructor. Does not throw.
explicit basic_bufferbuf(CharT * buf, std::size_t length, std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
Constructor. Assigns formatting buffer. Does not throw.
~basic_bufferbuf();