C++ Lambdas: capture list vs. parameter list

后端 未结 2 1198
走了就别回头了
走了就别回头了 2021-01-31 02:35

According to the C++11 standard, lambda expressions may use variables in the enclosing scope, by means of the capture list, the parameter list or both.

So, let\'s look

2条回答
  •  余生分开走
    2021-01-31 02:54

    The point is that with capture, you can keep a state (just as a hand written class with operator() ) in a function-like object. @dau_sama gives a good answer. Here is another example:

    #include 
    using namespace std;
    
    int main() {
    
      const auto addSome = [](double some){
        return [some](double val){ return some+val; } ;
      };
    
      const auto addFive = addSome(5);
    
      std::cout << addFive(2) << std::endl;
    }
    

提交回复
热议问题