c++ 预处理的图灵完备之引言
然后,这样调用, #define _ZPP_INVOKE_JOIN(_A,_B) _ZPP_IMP_INVOKE_JOIN_I(_A,_B) #define _ZPP_IMP_INVOKE_JOIN_I(_A,_B) _ZPP_IMP_INVOKE_JOIN_II(~,_A##_B) #define _ZPP_IMP_INVOKE_JOIN_II(p,res) res #define PP_INVOKE(m,args,) _ZPP_INVOKE_JOIN(m,args) 前面几行代码都是PP_INVOKE的JOIN函数实现,可以直接当它们是JOIN函数,关键是PP_INVOKE(m,...)这里,第一个参数m是宏函数,第二个是args,是要传给第一个参数m的参数列表,用括号括起来,至于后面的省略号,是有些时候为了取悦编译器而添加的,也不知道是什么原因,反正这样子就可以了,懒得追究。垃圾宏,垃圾预处理,只要能完成功能就行了,c++中,代码生成代码,重头戏在tmp那里,宏只是小小必要的辅助工具而已。然后,这样调用, (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |