# Template Class basic_ostream

- Defined in File gzio.hpp

## Inheritance Relationships

### Base Type

- `public std::basic_ostream< CharT, Traits >`

### Derived Types

- `public cif::gzio::basic_ofstream< char, std::char_traits< char > >` (Template Class basic_ofstream)

- `public cif::gzio::basic_ofstream< CharT, Traits >` (Template Class basic_ofstream)

## Class Documentation

template<typename CharT, typename Traits>
class basic_ostream : public std::basic_ostream<CharT, Traits>

  An ostream implementation that wraps a streambuf with a compressing streambuf.

  This is an ostream implementation that can take an upstream streambuf and then wraps this streambuf with a compressing streambuf class defined above. The class inherits from std::basic_ostream and offers all the associated functionality.

  Template Parameters:

    - CharT – Type of the character stream.

    - Traits – Traits for character type, defaults to char_traits<_CharT>.

  Subclassed by cif::gzio::basic_ofstream< char, std::char_traits< char > >, cif::gzio::basic_ofstream< CharT, Traits >

  Public Functions

  inline basic_ostream(basic_ostream &&rhs)

    Regular move constructor.

  inline basic_ostream &operator=(basic_ostream &&rhs)

    Regular move operator=.

  Protected Functions

  inline basic_ostream()
  inline void init_z(std::streambuf *sb)

    Initialise internals with streambuf sb.

  Protected Attributes

  std::unique_ptr<z_streambuf_type> m_gziobuf

    Our streambuf class.