我想使用Logger类进行C ++登录,该类具有静态功能,使用方式如下:
auto logger = Logger::GetInstance();
logger->Log(message, FileName, Line)
对于文件名和行号,我可以使用__ FILE__和__ LINE__宏,但是在使用此记录器的任何地方都必须写此宏。 这是我的第一个问题
我找到了一种使用#define的方法:
#define LOG(message) Logger::getInstance()->Log(message, __ FILE__, __ LINE__)
,有了这个功能,我不需要编写这个预处理器。 正如#{3}}书中的斯科特·迈耶斯(Scott Meyers)所说,使用#define是我的问题” 。
有什么方法可以避免#define并且每次都不编写此预处理器?