diff --git a/log.h b/log.h index 015828acdace3fcb709de483ff6292ef4d051f63..7ca1ba4e33f4add28579183d29658523dc7a7acf 100644 --- a/log.h +++ b/log.h @@ -50,6 +50,17 @@ namespace Utilities{ return log; } + template<class t> Log& operator<<(Log& log, t& obj) + { + if(log.stream_to_logfile) + log.logfileout << obj; + + if(log.stream_to_cout) + cout << obj; + + return log; + } + class Log { public: @@ -123,6 +134,9 @@ namespace Utilities{ template<class t> friend Log& operator<<(Log& log, const t& obj); + + template<class t> + friend Log& operator<<(Log& log, t& obj); }; class LogSingleton diff --git a/time_tracer.h b/time_tracer.h index 5e25e10925b62523b8abdf3f4e03822fb6c4edfa..44616a4de6f30f2fe8bd8e0ba48e4b7a146f7cbe 100644 --- a/time_tracer.h +++ b/time_tracer.h @@ -84,15 +84,17 @@ namespace Utilities{ if(instantstack || runningstack) { - tmp = ""; - pad++; - for(unsigned int i = 0; i < pad; i++) - tmp = tmp + " "; - stk.push(string(str)); if(runningstack) - cout << tmp << str << endl; + { + tmp = ""; + pad++; + for(unsigned int i = 0; i < pad; i++) + tmp = tmp + " "; + + cout << tmp << str << endl; + } } if(timingon) { @@ -116,7 +118,9 @@ namespace Utilities{ virtual ~Time_Tracer() { if(instantstack) - stk.pop(); + { + stk.pop(); + } if(runningstack && pad > 0) {