Logklasse erstellen
-
Was haltet ihr davon eine Log-Klasse so zu erstellen, anstelle von einem Define, das in der Release den Code verschwinden lässt?
class Logger { public: Logger( const char* fname ) : out( fname ) { } #ifdef DEBUG Logger& operator<< (const std::string& text) { out << text; return *this; } #else Logger& operator<< (const std::string&) { return *this; } #endif private: std::ofstream out; };Der Compiler dürfte die leere Funktion ja wegoptimieren.
Damit müsste man nicht immer diese umständlichen "LOGBLA( "Ein String" );"-Makros benutzen, sondern könnte ganz natürliches C++ verwenden.