В качестве примера, взятого из ответа на этот вопрос, это код, который вычисляет сумму элементов в std::vector
:
std::for_each(
vector.begin(),
vector.end(),
[&](int n) {
sum_of_elems += n;
}
);
Я понимаю, что лямбда-функции - это просто безымянные функции.
Я понимаю синтаксис лямбда-функций как описано здесь.
Я не понимаю, почему для лямбда-функций нужен список захвата, а нормальные функции - нет.
- В какой дополнительной информации содержится список захвата?
- Зачем нормальным функциям не нужна эта информация?
- Являются ли лямбда-функции более чем безымянными функциями?