lambda显式声明返回值

10.21 编写一个lambda,捕获一个局部int变量,并递减变量值,直至它变为0.一旦变量变为0,再调用lambda应该不再递减变量。lambda应该返回一个bool值,指出捕获的变量是否为0.

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    int n=5;
    auto f=[n]() mutable ->bool {if(n>0) return --n;else return n;};
    int i=8;
    while(i)
    {
        cout<<f()<<" ";
        --i;
    }
  cout<<endl;
return 0; }

运行结果如下:

1 1 1 1 0 0 0 0
原文地址:https://www.cnblogs.com/wuchanming/p/3917806.html