File multiostream.hxx

Typedefs

using cmultiostream = multiostream<char>
using wmultiostream = multiostream<wchar_t>
template<typename char_type, typename traits = std::char_traits<char_type>>
class multioutbuf : public std::basic_streambuf<char_type, traits>
#include <multiostream.hxx>

Template class to split streams.

from http://accu.org/index.php/journals/260

Public Functions

inline void add(std::basic_ostream<char_type, traits> &str)
inline void remove(std::basic_ostream<char_type, traits> &str)

Protected Functions

inline std::streamsize xsputn(const char_type *sequence, std::streamsize num) override
inline int overflow(int c) override

Private Types

using stream_container = std::vector<std::basic_ostream<char_type, traits>*>

Private Members

stream_container streams_
template<typename char_type, typename traits>
class multioutbuf_init

Subclassed by multiostream< char_type, traits >, Output

Public Functions

inline multioutbuf<char_type, traits> *buf()

Private Members

multioutbuf<char_type, traits> buf_
template<typename char_type, typename traits = std::char_traits<char_type>>
class multiostream : private multioutbuf_init<char_type, traits>, public std::basic_ostream<char_type, traits>

Public Functions

inline multiostream()
inline void add(std::basic_ostream<char_type, traits> &str)
inline void remove(std::basic_ostream<char_type, traits> &str)

Private Types

using multioutbuf_init = ::multioutbuf_init<char_type, traits>