C++中的Lambda表達式(Lambda Expression)是一種在程式碼中直接定義不具名函數的便捷方法。
通常用來封裝幾行只會使用一次、且不需要在其他地方重複呼叫的小程式碼(例如傳遞給 std::sort 或 std::for_each 的排序或走訪邏輯)。蠻好用的。
就是不需要在mail之外定義具名函數就可在mail裡執行函數的功能達到目的,它本身還是函數。
int _tmain(int argc, _TCHAR* argv[])
{
bool t = false;
//----- version A ----------
/* ccc is a lambda, ccc = function
ccc() = "true"
auto ccc = lambda; stores the lambda.
*/
auto ccc = [t] () {
if(t==true)
return "true";
else
return "false";
};
cout << ccc() << endl;
//----- version B ----------
/* ddd is a string, lambda = function
lambda() = "true"
ddd = "true"
string ddd = lambda(); stores the lambda's return value.
*/
string ddd = [t] () {
if(t==true)
return "true";
else
return "false";
}();
cout << ddd << endl;
return 0;
}