From c68387509bf96681643833ca4e2003a78256e09a Mon Sep 17 00:00:00 2001 From: Glen Fernandes Date: Fri, 7 Jan 2022 00:45:42 -0500 Subject: [PATCH] Add documentation for nullstream --- doc/io.adoc | 2 ++ doc/nullstream.adoc | 75 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 doc/nullstream.adoc diff --git a/doc/io.adoc b/doc/io.adoc index a4742a5..2403d39 100644 --- a/doc/io.adoc +++ b/doc/io.adoc @@ -25,6 +25,8 @@ include::ostream_joiner.adoc[] include::ostream_put.adoc[] +include::nullstream.adoc[] + :leveloffset: -1 ## Copyright and License diff --git a/doc/nullstream.adoc b/doc/nullstream.adoc new file mode 100644 index 0000000..ef04a82 --- /dev/null +++ b/doc/nullstream.adoc @@ -0,0 +1,75 @@ +//// +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) +//// + +# Null Streams, +:toc: +:toc-title: +:idprefix: + +## Description + +The header `` provides the class template +`boost::io::basic_nullbuf` which is a null stream buffer and class template +`boost::io::basic_onullstream` which is a null stream. + +## Example + +The following program passes a null stream to a function. + +``` +#include +#include + +void setup(std::ostream& log); + +int main(int argc, char* argv[]) +{ + if (argc == 2) { + std::ofstream file(argv[1]); + setup(file); + } else { + boost::io::onullstream none; + setup(none); + } +} +``` + +## Reference + +### Header Synopsis + +``` +namespace boost { +namespace io { + +template > +class basic_nullbuf + : public std::basic_streambuf { +protected: + typename Traits::int_type overflow(typename Traits::int_type c) override; + + std::streamsize xsputn(const CharT*, std::streamsize n) override; +}; + +template > +class basic_onullstream + : public std::basic_ostream { +public: + basic_onullstream(); +}; + +typedef basic_onullstream onullstream; +typedef basic_onullstream wonullstream; + +} // io +} // boost +``` + +## Acknowledgments + +Glen Fernandes implemented `basic_nullbuf` and `basic_onullstream`.