|
1
3
因此,虽然闭包对象类型的许多内容都是实现定义的,但函数本身必须是要定义的成员
编辑:
这个程序表明
输出:
编辑:
看起来唯一的问题是指向某些闭包调用操作符的指针无法匹配ptmf模板模式。解决方法是声明lambda表达式
输出:
没有变量和常量,
|
|
|
2
1
阅读 n3043 . lambda现在可以转换为函数指针,只要它们没有任何状态。我相信(…但不知道)GCC最初意外地实现了这个行为,“修复了它”,现在将把它重新添加到4.5或4.6中。VC10按照最初的设计正确地实现了lambdas,但不符合n3043的最新工作文件。 |
|
|
3
0
我认为gcc开发者有很好的理由做出这种行为。请记住,静态函数没有“this”指针,当实际调用它时,调用方不需要传递“this”指针。所以这是一个小的性能优化,实际上闭包对象中没有包含任何内容。您可以看到,G++开发人员通过将lambda表达式声明为“mutable”(请记住,实际上您没有任何东西可以变异)为您提供了一种解决方法。 |
|
|
Setu · 如何将元素从std::map移动到std::vector 1 年前 |
|
Konvt · 标准库中异常构造函数参数类型问题 1 年前 |
|
|
bourne · 关于操作员超载的澄清 1 年前 |