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 [email protected]

comments powered by Disqus


  • Windows Forms Lives On in .NET 6

    Windows Forms would like you to know that the reports of its death are greatly exaggerated.

  • Uno Platform 4.0 Adds Visual Studio Code Plugin

    Uno Platform 4.0 is out, highlighted by a new extension for working in Microsoft's Visual Studio Code editor.

  • .NET 6 Support Leads New GA Features in Azure Functions Fall Update

    Microsoft announced several new features that are now generally available in the fall update of Azure Functions, used for event-driven serverless computing in the cloud.

  • Teams Toolkit 3.0 Boosts Multiple Developer Collaboration

    Microsoft's Teams Toolkit 3.0 has debuted with several new features, including better multiple developer collaboration and improved multi-environment management.

Upcoming Events