没有#define的有效C预处理程序宏

时间:2019-01-07 15:48:18

标签: c++11 visual-c++ macros

我想使用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并且每次都不编写此预处理器?

0 个答案:

没有答案