#pragma once #include namespace ovdl::detail { template> class basic_nullbuf : public std::basic_streambuf { typename traits::int_type overflow(typename traits::int_type c) { return traits::not_eof(c); // indicate success } }; template> class basic_onullstream : public std::basic_ostream { public: basic_onullstream() : std::basic_ios(&m_sbuf), std::basic_ostream(&m_sbuf) { std::basic_ios::init(&m_sbuf); } private: basic_nullbuf m_sbuf; }; using onullstream = basic_onullstream; using wonullstream = basic_onullstream; static inline onullstream cnull; static inline onullstream wcnull; }