官术网_书友最值得收藏!

Preparing the value using initialization captures

Another great feature of the Lambda expression coming up in C++14 is its initialization captures. The expression can capture a value of the variable and assign it to the expression's variable. Let's take a look at the following piece of code implementing the initialization captures:

    /* lambda_initialization_captures.cpp */
#include <iostream>

using namespace std;

auto main() -> int
{
cout << "[lambda_initialization_captures.cpp]" << endl;

// Initializing a variable
int a = 5;
cout << "Initial a = " << a << endl;

// Initializing value to lambda using the variable
auto myLambda = [&x = a]() { x += 2; };

// Executing the Lambda
myLambda();

// Displaying a new value of the variable
cout << "New a = " << a << endl;

return 0;
}

As we can see in the preceding code, we have an int variable named a with the value 5. The Lambda expression, myLambda, then captures the a value and executes it in the code. The result is that now the a value will be 7 since it is added by 2. The following output screenshot should appear in our console window when we run the preceding code:

From the preceding snapshot, we see that we can prepare the value to be included in the calculation inside the Lambda expression.

主站蜘蛛池模板: 芜湖县| 扬州市| 雷波县| 乐安县| 霍城县| 通化市| 明水县| 商都县| 布尔津县| 桦南县| 湖口县| 监利县| 新密市| 禹州市| 大洼县| 偏关县| 特克斯县| 双流县| 扬州市| 自治县| 武汉市| 双城市| 和田县| 泾川县| 凤凰县| 天津市| 上林县| 巨野县| 昭苏县| 聂拉木县| 塘沽区| 东乡族自治县| 邻水| 行唐县| 定兴县| 侯马市| 阳泉市| 沛县| 青海省| 天峻县| 贡山|