任何人都可以从ISON3242§3.3.3,第二点
解释这个陈述函数定义(8.4)中函数参数名称 (包括一个出现在lambda声明符中)或函数本地预定义变量 的潜在范围开始在宣言时。如果函数具有函数try块,则参数 或函数本地预定义变量 的潜在范围在最后一个关联的处理程序的末尾结束,否则它在函数定义的最外面的块的末尾结束。参数名称不得在函数定义的最外层块中重新声明,也不得在与函数try-block关联的任何处理程序的最外层块中重新声明。
ISO标准2003说:
函数定义(8.4)中函数参数名称的潜在范围从声明点开始。如果函数具有函数try-block,则参数的潜在范围在最后一个关联的处理程序的末尾结束,否则它在函数定义的最外面的块的末尾结束。参数名称不得在函数定义的最外层块中重新声明,也不得在与函数try-block关联的任何处理程序的最外层块中重新声明。
这些陈述的实际差异是什么?
任何人都可以用示例/程序来解释上面添加的内容......?
我注意到它属于函数本地预定义变量实际上他说的是什么..关于这个?
答案 0 :(得分:4)
这些更改是“函数本地预定义变量”的添加,它是C ++ 0x的新增内容。它们是隐式定义的静态变量,可在函数中使用。标准草案定义了一个名为__func__
的函数,它给出了函数的名称,并允许实现添加更多自己的函数。这一段现在说它们在函数参数名称的任何地方都可用。