Basic syntax of a C++ lambda function

In a nutshell, the lambda function capability enables programmers to pass functions to regular functions, just as easily as a variable is passed.

Let's compare passing a lambda function to an algorithm with passing a variable:

// Prerequisite 
auto vals = std::vector<int>{1, 3, 2, 5, 4}; 
 
// Look for number three 
auto three = 3; 
auto num_threes = std::count(vals.begin(), vals.end(), three); 
// num_threes is 1 
 
// Look for a numbers which is larger than three 
auto is_above_3 = [](int v){ return v > 3; }; 
auto num_above_3 = std::count_if(vals.begin(), vals.end(), is_above_3);
// num_above_3 is 2 

Notice how we pass a variable to search for with std::count() in the first case, and a function to search for with ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.