Using Lambdas in C++: Listing 4

Printing odd elements from Listing 3, using lambda expressions.

int main()
  // a list of 20 integers
  list<int> l(20);

  // here's the lambda version of GenerateFibonacci::operator()() in Listing 3.
  // I replaced private variables penultimate_ and last_ with static ones, so they maintain
  // values between consecutive invocations.
  generate(begin(l), end(l), [] () {
    static int penultimate(0), last(1);
    int current = penultimate + last;

    penultimate = last;

    return last = current;

  // likewise, we do the same with Listing 3 function printIfOdd(int).
  for_each(begin(l), end(l), [] (int n) {
  if (n%2)
    cout << n << " is odd." << endl;

  return 0;

About the Author

Diego Dagum is a software architect and developer with more than 20 years of experience. He can be reached at

comments powered by Disqus


.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events