如何?
我试过了:
#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)
定义一个完全独立的类,其作用是封装源代码位置。 (一个班级,一个责任。)这个班级可以包括以您喜欢的方式格式化信息的功能。
然后定义一个具有完全唯一名称的宏,从__LINE__
等构建类。
然后你的Some
类构造函数可以只接受一个作为源位置的参数,并且调用者在每次调用中都使用宏。