00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef SBUILD_NOSTREAM_H
00021 #define SBUILD_NOSTREAM_H
00022
00023 #include <streambuf>
00024 #include <ostream>
00025
00026 namespace sbuild
00027 {
00028
00033 template <class cT, class traits = std::char_traits<cT> >
00034 class basic_nbuf: public std::basic_streambuf<cT, traits>
00035 {
00042 typename traits::int_type
00043 overflow (typename traits::int_type c)
00044 {
00045 return traits::not_eof(c);
00046 }
00047 };
00048
00053 template <class cT, class traits = std::char_traits<cT> >
00054 class basic_nostream: public std::basic_ostream<cT, traits>
00055 {
00056 public:
00058 basic_nostream ():
00059 std::basic_ios<cT, traits>(&nbuf),
00060 std::basic_ostream<cT, traits>(&nbuf)
00061 {
00062 init(&nbuf);
00063 }
00064
00065 private:
00067 basic_nbuf<cT, traits> nbuf;
00068 };
00069
00071 typedef basic_nostream<char> nostream;
00073 typedef basic_nostream<wchar_t> wnostream;
00074
00076 extern nostream cnull;
00077
00078 }
00079
00080 #endif
00081
00082
00083
00084
00085
00086