2013-03-13 3 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

ответ

1

Это lambda-expression, анонимный метод/функция. Вы можете предоставить его встроенный, если нет причин для определения отдельной функции. [] связывает локальные параметры либо по значению [], либо по ссылке [&]. В () вы передаете свои значения, как в вызове функции, а {} охватывает тело функции.

См. here.

Смежные вопросы