2014-01-09 17 views
0

如何?如何确定调用者函数,文件和类构造函数的行?

我想:

#define Some(p1, p2) _Some(p1, p2, __FILE__, __func__, __LINE__) 
Some _Some(int p1, int p2, const char* file, const char* func, int line) { ... } 

但:

some.hpp:16:12: error: macro "Some" requires 3 arguments, but only 1 given 
    ~Some(); 
      ^
some.hpp:16:5: error: invalid use of destructor ‘~Some’ as a type 
    ~Some(); 
    ^
+0

你能告诉我们从'0'行到''some.hpp'行'20'的整个代码吗? – Shoe

+0

你的宏名称与别的东西冲突。这就是为什么宏名称传统上使用SHOUTY_CAPS。 –

回答

0

定义一个完全独立的类,它的工作是封装源代码的位置。 (一个班级,一个责任。)这个班级可以包含函数来格式化您的首选信息。

然后定义一个宏,与一个完全独特的名字,从__LINE__

建设类然后你Some类的构造函数可以只接受一个单一的参数是源位置,以及呼叫者使用宏每次通话。

相关问题