__LINE__ und __FILE__ ohne Makros effektiv nutzen
-
Ich bin derzeit dabei, eine Fehlerbehandlungsklasse zu schreiben (Logging, Ausgabe in der Konsole/aufm Bildschirm... das übliche halt)
Ich würde dabei gerne den genauen Ort, wo der Fehler aufgetreten ist, mitprotokollieren. Allerdings müsste ich dann jedesmal __LINE__ und __FILE__ übergeben
//also statt log( "Fehler" ); // müsste ich stets log( "Fehler", __LINE__, __FILE__ ); // schreibenauf die Dauer ein wenig nervig...
ich könnte es freilich über ein Makro lösen, aber ich hab es bis jetzt erfolgreich geschafft, sowas in meiner Anwendung zu vermeiden und würde das gerne beibehalten
gibts da ne andere Möglichkeit?
-
zwutz schrieb:
gibts da ne andere Möglichkeit?
Nein.
-
zwutz schrieb:
ich könnte es freilich über ein Makro lösen, aber ich hab es bis jetzt erfolgreich geschafft, sowas in meiner Anwendung zu vermeiden und würde das gerne beibehalten
Es gibt Fälle wo Makros durchaus ihre Darseinsberechtigung haben, wie dieser!

-
David_pb schrieb:
zwutz schrieb:
ich könnte es freilich über ein Makro lösen, aber ich hab es bis jetzt erfolgreich geschafft, sowas in meiner Anwendung zu vermeiden und würde das gerne beibehalten
Es gibt Fälle wo Makros durchaus ihre Darseinsberechtigung haben, wie dieser!

ok, danke...
ich werds überleben

-
Damit du nicht viel Code ändern musst, kannst du ja den Bezeichner
logfür das Makro verwenden.void log_function(const char* Message, int Line, const char* File); #define log(MESSAGE) log_function(MESSAGE, __LINE__, __FILE__)