Download build/_deps/catch2-src/examples/231-Cfg-OutputStreams.cpp from camenduru/thrust: direct link, hf CLI and curl.
- Browser
- Download file 1.44 kB
-
https://huggingface.co/camenduru/thrust/resolve/main/build/_deps/catch2-src/examples/231-Cfg-OutputStreams.cpp
- Command line
-
hf download hf://camenduru/thrust/build/_deps/catch2-src/examples/231-Cfg-OutputStreams.cpp
-
curl -L -o 231-Cfg-OutputStreams.cpp https://huggingface.co/camenduru/thrust/resolve/main/build/_deps/catch2-src/examples/231-Cfg-OutputStreams.cpp
1.44 kB
| // 231-Cfg-OutputStreams.cpp | |
| // Show how to replace the streams with a simple custom made streambuf. | |
| // Note that this reimplementation _does not_ follow `std::cerr` | |
| // semantic, because it buffers the output. For most uses however, | |
| // there is no important difference between having `std::cerr` buffered | |
| // or unbuffered. | |
| class out_buff : public std::stringbuf { | |
| std::FILE* m_stream; | |
| public: | |
| out_buff(std::FILE* stream):m_stream(stream) {} | |
| ~out_buff(); | |
| int sync() override { | |
| int ret = 0; | |
| for (unsigned char c : str()) { | |
| if (putc(c, m_stream) == EOF) { | |
| ret = -1; | |
| break; | |
| } | |
| } | |
| // Reset the buffer to avoid printing it multiple times | |
| str(""); | |
| return ret; | |
| } | |
| }; | |
| out_buff::~out_buff() { pubsync(); } | |
| namespace Catch { | |
| std::ostream& cout() { | |
| static std::ostream ret(new out_buff(stdout)); | |
| return ret; | |
| } | |
| std::ostream& clog() { | |
| static std::ostream ret(new out_buff(stderr)); | |
| return ret; | |
| } | |
| std::ostream& cerr() { | |
| return clog(); | |
| } | |
| } | |
| TEST_CASE("This binary uses putc to write out output", "[compilation-only]") { | |
| SUCCEED("Nothing to test."); | |
| } | |