Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Class template basic_vectorbuf



// In header: <boost/interprocess/streams/vectorstream.hpp>

template<typename CharVector, typename CharTraits> 
class basic_vectorbuf {
  // types
  typedef CharVector             vector_type;
  typedef CharVector::value_type char_type;  
  typedef CharTraits::int_type   int_type;   
  typedef CharTraits::pos_type   pos_type;   
  typedef CharTraits::off_type   off_type;   
  typedef CharTraits             traits_type;

  // construct/copy/destruct
  basic_vectorbuf(std::ios_base::openmode = std::ios_base::in|std::ios_base::out);
  template<typename VectorParameter> 
    basic_vectorbuf(const VectorParameter &, 
                    std::ios_base::openmode = std::ios_base::in|std::ios_base::out);

  // public member functions
  void swap_vector(vector_type &) ;
  const vector_type & vector() const;
  void reserve(typename vector_type::size_type) ;
  void clear() ;


A streambuf class that controls the transmission of elements to and from a basic_ivectorstream, basic_ovectorstream or basic_vectorstream. It holds a character vector specified by CharVector template parameter as its formatting buffer. The vector must have contiguous storage, like std::vector, boost::interprocess::vector or boost::interprocess::basic_string

basic_vectorbuf public construct/copy/destruct

  1. basic_vectorbuf(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

    Constructor. Throws if vector_type default constructor throws.

  2. template<typename VectorParameter> 
      basic_vectorbuf(const VectorParameter & param, 
                      std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

    Constructor. Throws if vector_type(const VectorParameter &param) throws.

  3. ~basic_vectorbuf();

basic_vectorbuf public member functions

  1. void swap_vector(vector_type & vect) ;

    Swaps the underlying vector with the passed vector. This function resets the read/write position in the stream. Does not throw.

  2. const vector_type & vector() const;

    Returns a const reference to the internal vector. Does not throw.

  3. void reserve(typename vector_type::size_type size) ;

    Preallocates memory from the internal vector. Resets the stream to the first position. Throws if the internals vector's memory allocation throws.

  4. void clear() ;

    Calls clear() method of the internal vector. Resets the stream to the first position.