#include <cstdlib>
#include <iostream>
using namespace std;
class Dummy {
private:
string callfuncname;
public:
Dummy(string name){
callfuncname=name;
cout<<callfuncname<<"In"<<endl;
};
~Dummy(){
cout<<callfuncname<<"Out"<<endl;
};
};
#define MYMACRO(funcName) Dummy myfake(funcName)
int func1(){
MYMACRO(__FUNCTION__); return 1;
}
int func2(){
MYMACRO(__FUNCTION__);return 2;
}
int main(int argc, char** argv) {
MYMACRO(__FUNCTION__);
func1();
func2();
return 0;
}
//输出
mainIn
func1In
func1Out
func2In
func2Out
mainOut