#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; }; typedef basic_onullstream onullstream; typedef basic_onullstream wonullstream; inline onullstream cnull; inline onullstream wcnull; }