Kann ich in C++ ein voreingestelltes Argument für eine Funktion haben, die standardmäßig __PRETTY_FUNCTION___
, ___FILE___
und ___LINE__
an der Stelle des Aufrufers definiert und nicht den Punkt die Standardwerte in einer Header-Datei ohne Makros geliefert werden?Kann ich ein Funktionsargument auf den Wert von __FILE__ beim Aufrufer setzen?
6
A
Antwort
5
Sie können nicht, aber Sie können dieses Verhalten mit einem zusätzlichen Makro erreichen. Zum Beispiel:
#DEFINE THROW(e) throwException(e, __FILE__, __LINE__);
Eine Randnotiz, __PRETTY_FUNCTION__
ist nicht Standard.
1
Nein. Makros werden an der Quelle erweitert, an der sie auftreten.
0
Sie können wahrscheinlich ... aber definitiv nicht mit der Einschränkung, die Sie erwähnten (keine Makros).