当 lambda 函数在函数内部声明时F
这是班级的朋友C
, lambda 函数是否可以访问C
私人会员?具体来说,标准允许吗?
C++11 §[expr.prim.lambda] 5.1.2/3:
的类型lambda 表达式(也是闭包对象的类型)是一种独特的、未命名的非联合类类型——称为闭包类型——其属性如下所述。该类类型不是聚合 (8.5.1)。闭包类型在包含相应的最小块作用域、类作用域或命名空间作用域中声明lambda 表达式. ...
由于闭包类型是在友元函数中声明的,因此根据 §[class.local] 9.8/1,它将具有相同的访问权限:
类可以在函数定义中声明;这样的类称为local班级。本地类的名称是其封闭范围的本地名称。本地类位于封闭作用域的范围内,并且与封闭函数具有相同的对函数外部名称的访问权限。 ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)