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).