Robin Chow's C++ Blog

 

[导入]More Exceptional C++ 之 16

局部类型或匿名类不能用作模板参数。

C++ 不支持函数嵌套,但是我们可以通过函数对象来间接实现它。

#
数字符(或称‘字符串化’操作符)把扩展后的宏参数转化成字符串常量。 它仅与带参数的宏一起使用。 如果它在宏定义中定义在形参前面,那么由宏调用传递进来的实参是被引号括起来的,并且被当做一个字符串语意来对待。 这个字符串会替代每一个在宏定义中出现的‘字符串化’的操作符和形参。

符号传递操作符

双数字符(或称“符号传递”操作符),有时也被称为合并操作符,用在类似对象以及类似函数的宏中。 它允许分开的若干符号被合并成一个符号,因此它(##)不能作为宏定义中第一个或者最后一个出现的符号。

除了以下情况,尽量避免使用预处理宏:
  • #include 守卫
  • 增强可移植性或方便调试的条件编译(在 cpp 文件中,而不是在 .h 文件中)。
  • 使用 #pragmas 来禁止一些无意义的警告。#pragmas 通常应该放在 “移植性的条件编译” 守卫中以防止编译器不能识别该指令而发出警告。

文章来源:http://my.donews.com/robinchow/2007/02/11/wkibsjwatiheajluxlmvybkwnutbvifrtotm/

posted on 2007-10-23 20:47 Robin Chow 阅读(87) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜