我有一个班级Logger
,当然这是用于记录的。它是一个单例类,由静态成员函数访问。所以,例如:
Logger::Warning("something");
大。然后我添加了一个重载函数来进行跟踪,所以:
Logger::Warning(__FILE__, __LINE__, __func__, "something");
现在,这看起来有点长,所以我定义了一个宏:
#define TRACE __FILE__, __LINE__, __func__
以便代码现在看起来像
Logger::Warning(TRACE, "something");
似乎我可以做得更好,所以现在是一个新的宏:
#define LOG_WARNING(...) Logger::Warning(__FILE__, __LINE__, __func__, __VA_ARGS__)
我们有:
LOG_WARNING("somthing");
这样可行,但这是我的问题:
有没有办法在不使用宏的情况下完成此操作?在我看来,__FILE__
,__LINE__
和__func__
需要在感兴趣的实际函数中使用,因此需要宏。请不要建议debug_backtrace()
。