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