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

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.

主站蜘蛛池模板: 龙游县| 朝阳县| 朝阳县| 林口县| 尚义县| 炉霍县| 双辽市| 榕江县| 济源市| 南投市| 缙云县| 华坪县| 台州市| 泰州市| 区。| 旌德县| 渭源县| 晋城| 昂仁县| 汉沽区| 安康市| 侯马市| 增城市| 蒲城县| 镇康县| 石渠县| 专栏| 乌鲁木齐县| 香格里拉县| 凉山| 屏东市| 寻甸| 郴州市| 许昌县| 缙云县| 廉江市| 太和县| 衢州市| 南投县| 扶沟县| 清徐县|