相关疑难解决方法(0)

对于一个lambda来说,它本质上是否有效?

这个lambda递归有效吗?

#include <functional>
#include <iostream>

int main() {
   std::function<int(int)> g = [&g](int k) {
       return (k ? k * g(k-1) : 1);
   };

   std::cout << g(10); // 3628800
}
Run Code Online (Sandbox Code Playgroud)

似乎编译并运行正常,但我很担心g在我初始化它的同一声明中结束.严格有效的1-10级......?

c++ lambda c++11

43
推荐指数
1
解决办法
1080
查看次数

C++ lambda返回自己

我想写一个返回自己的lambda,所以我可以在现场多次调用它.但看起来lambda内部this不是指lambda而是指周围对象this,如果lambda是在成员函数内定义的话.

这是一个例子:

#include <iostream>

int main(int argc, char* argv[]) {
  int a = 5;
  [&](int b) {
    std::cout << (a + b) << std::endl;
    return *this;
  }(4)(6);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做一些类似的事情?

c++ lambda

8
推荐指数
2
解决办法
412
查看次数

标签 统计

c++ ×2

lambda ×2

c++11 ×1