问题
In C++, can I have a defaulted argument to a function which defaults to __PRETTY_FUNCTION___
, ___FILE___
, and ___LINE__
as defined at the point of the caller and not the point the defaults are supplied in a header file without using macros?
回答1:
You can't, but you can acheive this behavior with an additional macro. For instance:
#DEFINE THROW(e) throwException(e, __FILE__, __LINE__);
On a side note, __PRETTY_FUNCTION__
is not standard.
回答2:
No. Macros are expanded at the source line where they occur.
回答3:
You probably can... but definitely not with the restriction you mentioned (no macros).
来源:https://stackoverflow.com/questions/3462789/can-i-default-a-function-argument-to-the-value-of-file-at-the-caller