我正在阅读“适用于C++的面向对象的预处理器”一文。什么是计算宏和语法宏
它讨论了三种不同类型的宏。
- 文本宏。 //非常相似C预处理器
- 计算宏//将文本替换为计算结果
- 语法宏。 //由语法树替代的文本代表语言上一致的结构。
有人可以请一个精心制作的方式解释最后两种类型的宏。它说,内联函数和模板是计算宏的例子,怎么样?
我正在阅读“适用于C++的面向对象的预处理器”一文。什么是计算宏和语法宏
它讨论了三种不同类型的宏。
有人可以请一个精心制作的方式解释最后两种类型的宏。它说,内联函数和模板是计算宏的例子,怎么样?
纵观1966年原奇塔姆的纸张的Willink的和Muchnick的论文是指我总结了不同的宏类型是这样的:
我没有C++内部的专家,但我认为的函数调用和实例化模板的内联约为前操纵语法树,而之后它被标注了必要的语义信息来正确编译为这两个人似乎都认为知道很多东西(比如类型信息以及是否有内联的东西),这在扫描和解析过程中还不知道。
2.它听起来像是说它们意味着某些计算是在编译时完成的,并且在运行时执行的结果指令只涉及结果。我不认为内联函数特别代表这一点,但模板元编程正是这样做的。在C++ 11中也是constexpr
。
我觉得3.也可以用模板来表示。一个模板确实表示一个语法树,并且实例化它涉及到采用通用语法树,填充参数化的未知比特以及使用生成的语法树。
感谢您的回复..我几天前还看了报纸。 – 2012-04-15 02:46:06