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

时间:2014-01-09 19:05:16

标签: c++ macros

如何?

我试过了:

#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();
     ^

1 个答案:

答案 0 :(得分:0)

定义一个完全独立的类,其作用是封装源代码位置。 (一个班级,一个责任。)这个班级可以包括以您喜欢的方式格式化信息的功能。

然后定义一个具有完全唯一名称的宏,从__LINE__等构建类。

然后你的Some类构造函数可以只接受一个作为源位置的参数,并且调用者在每次调用中都使用宏。