在C++标准中,闭包类型定义如下:
这个问题不在于是否有用或者没有用从lambda继承:已经假设它是有用的了。问题在于标准是否提供了这个保证。
标准似乎没有定义未命名非联合类类型是否是final的问题。如果一个实现将lambda实现为final类,那么它是否符合标准?或者说,我们有保证可以从lambda继承吗?[expr.prim.lambda.closure] lambda表达式(也是闭包对象的类型)的类型是一种独特的、未命名的非联合类类型,称为闭包类型,其属性如下所述。[...]
这个问题不在于是否有用或者没有用从lambda继承:已经假设它是有用的了。问题在于标准是否提供了这个保证。
std::visit
,在我的观点中,将 lambda 函数串联起来(甚至与其他函数对象一起)比使用 if 语句链的通用 lambda 函数更加简洁。还可以参考 P0051。 - Rakete1111final
。 :) - cpplearnerfinal
的效果与语法形式相关联。 :) - cpplearnerclass final
是一个名为final的类。 - Rakete1111