We explored how to write lambdas in Groovy. So, can we use their power in C++? Well, since C++ 11, a specific syntax was introduced. Let's take a look at how our add lambda would look in C++:
int main(){
auto add = [](int first, int second){ return first + second;};
cout << add(1,2) << endl; // writes 3
}
Let's unpack the syntax as follows:
- Our lambda starts with []. This block specifies the variables we capture from the context, and we'll see how to use it in a moment. Since we don't capture anything, the block is empty.
- Next, we have the parameter list, (int first, int second), as in any other C++ function.
- Finally, we write the body of the lambda, using a return statement: { return first + second; }.
The syntax has a bit more ceremony than in Groovy, but it feels like C++ and that's a good thing; uniformity helps us...