Max*_*rai 0 c++ macros arguments default function
我正在写记录器文件。我更喜欢在那里使用宏__FUNCTION__。我不喜欢这样的方式:
Logger.write("Message", __FUNCTION__);
Run Code Online (Sandbox Code Playgroud)
也许,有可能做这样的事情:
void write(const string &message, string functionName = __FUNCTION__)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果没有,有没有什么方法可以不用手来做这些事情(我的意思是传递函数名)?
您可以通过将其全部包装在一个宏中来做类似的事情:
#define log(msg) Logger.write(msg, __FUNCTION__)
Run Code Online (Sandbox Code Playgroud)
缺点是您Logger在使用此宏时需要在范围内。