2013-03-13 71 views
0

我有這段代碼。[](){}構造在C++中意味着什麼?

boost::for_each(
    boost::make_iterator_range(
      func(arg1), 
      func(arg2) 
     ), 
     [&d, &f](const a<b>& c) 
     { 
      something; 
     } 
); 

我理解代碼的迭代器部分。對我來說不清楚的是我們迭代的結果。這種結構意味着什麼? [](){}

+1

[這個問題](http://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11)有一個很好的解釋。 – chris 2013-03-13 15:31:33

回答

1

這是一個lambda-expression,一個匿名方法/函數。如果沒有理由定義不同的函數,則可以以內聯方式提供它。 []通過值[]或通過引用[&]綁定本地參數。在()中,你可以像在函數調用中那樣傳遞值,並且{}包含函數體。

請參閱here