在三方库源码中,我们经常看到这样的代码:
#pragma push_macro("new")
#undef new
// do something with new
......
#pragma pop_macro("new")
它的作用就是将宏定义new压入栈并取消它的定义,如此一来new的本来含义便获得了恢复,使用完毕后将宏定义new弹出栈,恢复宏定义。
不过,仍有下面两个问题需要回答。
1)宏定义名不会与关键字new冲突吗?
2)宏定义new有
在三方库源码中,我们经常看到这样的代码:
#pragma push_macro("new")
#undef new
// do something with new
......
#pragma pop_macro("new")
它的作用就是将宏定义new压入栈并取消它的定义,如此一来new的本来含义便获得了恢复,使用完毕后将宏定义new弹出栈,恢复宏定义。
不过,仍有下面两个问题需要回答。
1)宏定义名不会与关键字new冲突吗?
2)宏定义new有