__FILE __,__LINE __,__ func__的宏替代

时间:2018-04-09 00:37:38

标签: c++ macros c-preprocessor trace

我有一个班级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()

0 个答案:

没有答案