我在这里有以下问题:我编写(重构)一个记录器,我正在尝试使用C ++的运行时类型识别机制,特别是typeid
来获取刚刚调用的类的运行时类型信息记录器。这就像一个宏:
#define debug() Streamer(__FILE__, __FUNCTION__, typeid(this).name(), LOG_DEBUG)
其中Streamer是一个重载operator <<
的类,以获取所需的流功能,例如debug() << "message " << 16;
等...
唯一的问题是当我从静态函数调用debug()
宏时。因为typeid(this)
变得疯狂并且非常正确地抱怨静态方法没有this
。
我想听听您的意见,也许还有一些关于将类作为包含尝试记录的静态方法的字符串获取的代码片段。
干杯,f。