Can I default a function argument to the value of __FILE__ at the caller?
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? 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. No. Macros are expanded at the source line where they occur. You probably can... but definitely not with the restriction you mentioned (no macros). 来源: https:/