Bash++
Bash++ compiler internal documentation
NullStream.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <streambuf>
10#include <ostream>
11#include <sstream>
12
13class NullBuffer : public std::streambuf {
14 protected:
15 int overflow(int c) override {
16 return traits_type::not_eof(c); // Indicate success, but discard the character
17 }
18};
19
20class NullOStream : public std::ostream {
21 private:
23 public:
24 NullOStream() : std::ostream(&null_buffer) {}
25};
26
27class NullOStringStream : public std::ostringstream {
28 public:
29 NullOStringStream() = default;
30
31 template <typename T>
32 NullOStringStream& operator<<(const T& value) {
33 // Do nothing, effectively discarding the output
34 return *this;
35 }
36
37 NullOStringStream& write(const char* s, std::streamsize n) {
38 // Do nothing, effectively discarding the output
39 return *this;
40 }
41
42 // Override str() to return an empty string
43 inline std::string str() const {
44 return ""; // Always return an empty string
45 }
46};
47
Definition NullStream.h:13
int overflow(int c) override
Definition NullStream.h:15
Definition NullStream.h:20
NullBuffer null_buffer
Definition NullStream.h:22
NullOStream()
Definition NullStream.h:24
Definition NullStream.h:27
NullOStringStream()=default
NullOStringStream & write(const char *s, std::streamsize n)
Definition NullStream.h:37
NullOStringStream & operator<<(const T &value)
Definition NullStream.h:32
std::string str() const
Definition NullStream.h:43