【发布时间】:2011-03-12 13:00:10
【问题描述】:
我正在为我的库创建一个日志记录工具,并制作了一些不错的宏,例如:
#define DEBUG myDebuggingClass(__FILE__, __FUNCTION__, __LINE__)
#define WARING myWarningClass(__FILE__, __FUNCTION__, __LINE__)
其中 myDebuggingClass 和 myWarningClass 都有一个重载的
现在,我有一些用户将重载的基类,称为“Widget”,我想将这些定义更改为更像:
#define DEBUG myDebuggingClass(__FILE__, __FUNCTION__, __LINE__, this)
#define WARNING myWarningClass(__FILE__, __FUNCTION__, __LINE__, this)
这样当用户调用 'DEBUG
最简单的解决方案是定义单独的 WIDGET_DEBUG、WIDGET_WARNING、PLAIN_DEBUG 和 PLAIN_WARNING 宏并将差异记录给用户,但如果有办法解决这个问题,那就太好了。有没有人看到做这种事情的任何技巧?
【问题讨论】:
标签: c++ macros metaprogramming