Сопоставление Junior Лямбды и функциональные объекты обновлено

Синтаксис захвата и его смысл

Вопрос

Сопоставьте список захвата и что он означает.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Явный список захвата делает зависимости лямбды видимыми. [=] и [&] удобны в коротких локальных лямбдах, но в отложенных колбэках лучше перечислить захваты явно.

Правильные пары

[x]
Копия x на момент создания
[&x]
Ссылка на x
[=, &out]
Всё по значению, кроме out по ссылке
[p = std::move(ptr)]
Новое поле p, инициализированное перемещением
[*this]
Копия текущего объекта
[]
Ничего не захвачено

Разбор

Явный список захвата делает зависимости лямбды видимыми. [=] и [&] удобны в коротких локальных лямбдах, но в отложенных колбэках лучше перечислить захваты явно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.