/* Copyright 2021 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under the Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_IO_NULLSTREAM_HPP #define BOOST_IO_NULLSTREAM_HPP #include #include #include namespace boost { namespace io { template > class basic_nullbuf : public std::basic_streambuf { protected: typename Traits::int_type overflow(typename Traits::int_type c) BOOST_OVERRIDE { return Traits::not_eof(c); } std::streamsize xsputn(const CharT*, std::streamsize n) BOOST_OVERRIDE { return n; } }; namespace detail { template struct nullbuf { boost::io::basic_nullbuf buf; }; } /* detail */ template > class basic_onullstream : detail::nullbuf , public std::basic_ostream { public: basic_onullstream() : std::basic_ostream(&(detail::nullbuf::buf)) { } }; typedef basic_onullstream onullstream; typedef basic_onullstream wonullstream; } /* io */ } /* boost */ #endif