Lambda expressions are coming to C++. In the next version of C++ standard, C++0x, lambda expressions will be included.
In C++0x a lambda expressions is in the form of [...](…}{…} where
1. [...] indicates it is a lambda expression
2. (…) declares the parameters
3. {…} defines the expressions ie. the code of the lambda expression
example:
// vector to store some integer values
std::vector<int> v;
// Add some values
v.push_back(1);
v.push_back(2);
v.push_back(3);
// print the values
std::for_each(v.begin(); v.end(), [&]( const int& n ) { cout << n << " "; });
int nTotal = 0;
// find the total
std::for_each(v.begin(); v.end(); [&total](int n){ total+=n; });
This document describes the lambda expression proposal. For a detailed explanation visit Herb Sutter's post.