【发布时间】:2016-03-27 22:32:18
【问题描述】:
在我的框架中,我想知道调用方客户端代码的行号、文件路径和方法名称。因此,例如,框架有一个方法 B(),客户端使用该框架并在 X 行,文件路径 Y 处调用 B()。对于我做一些错误报告,我想知道 X 和 Y。
对此的明显解决方案是将B() 包装在一个宏中:
#define B() B(__LINE__, __FILE__, ...) 这样客户端就不必指定 __LINE__ 和 __FILE__ 宏。
这是一个好的设计选择,如果不是,如何做到这一点?
【问题讨论】:
-
这种情况并不少见,尤其是在报告与源代码位置相关的日志信息时。
-
@WhozCraig 那么什么是常见的?
-
也许具体的否定让你失望了? “并不罕见” = 并不罕见 = 很常见。换句话说,你正在做的事情通常是做的。
标签: c++ debugging error-handling macros