Mercurial > projects > ldc
diff gen/logger.cpp @ 994:18ad5601dff7
Use LLVM OStream wrapper instead of <iostream> in the logger.
llvm::OStream provides all std::ostream functionality (by holding a
std::ostream* internally), but
* doesn't include <iostream>, avoiding per-file overhead.
* allows the stream pointer to be null, and the (inlined) operators do nothing
when that's the case. (This also allows removal of the ofstream("/dev/null")
hack Logger used when disabled, which presumably wasn't very portable)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Thu, 26 Feb 2009 14:51:02 +0100 |
parents | a8cb25d478c4 |
children | e7f0c2b48047 |
line wrap: on
line diff
--- a/gen/logger.cpp Thu Feb 26 15:24:20 2009 +0100 +++ b/gen/logger.cpp Thu Feb 26 14:51:02 2009 +0100 @@ -2,7 +2,6 @@ #include <cstdarg> #include <cstdio> #include <cstdlib> -#include <iostream> #include <fstream> #include <string> @@ -14,7 +13,6 @@ namespace Logger { static std::string indent_str; - static std::ofstream null_out("/dev/null"); llvm::cl::opt<bool> _enabled("vv", llvm::cl::desc("Very verbose"), @@ -33,12 +31,12 @@ indent_str.resize(indent_str.size()-2); } } - std::ostream& cout() + llvm::OStream cout() { if (_enabled) - return std::cout << indent_str; + return llvm::cout << indent_str; else - return null_out; + return 0; } void println(const char* fmt,...) {