可以区分静态和非静态函数的宏定义

时间:2014-10-01 20:39:07

标签: c++ visual-studio-macros

假设我有两个函数,一个是静态的,一个是非静态的,如下所示,

#define PRINT_INFO(__FUNCTION__,...) cout<<__FUNCTION__<<__VA_ARGS__
void static fun1();
void fun2();

fun1(){
PRINT_INFO(__FUNCTION__,this)
}

fun2(){
PRINT_INFO(__FUNCTION__,this)
}

fun1()的PRINT_INFO会抛出错误,因为这个&#39;不能用于静态函数。有没有什么方法可以实现上述目标,也就是说,如果函数是非静态的,那么传递&#39;这个&#39;,如果它是静态的,那么不传递任何东西(或者一些虚拟字符串)。

改述我的问题:我想通过这个&#39;如果函数是静态的,如果函数是非静态的则不传递任何函数。但我不想检查我的代码中的所有函数,然后添加&#39;这个&#39;只有非静力学。 我可以动态地知道函数是否是静态的吗?

0 个答案:

没有答案