Разбираем, как работает список захвата в лямбдах C++: захват по значению (
[x],
[=]) и по ссылке (
[&x],
[&]), смешанные варианты (
[=, &count]), ключевое слово
mutable для внутреннего состояния, а также главные грабли — время жизни при ссылочном захвате, «скрытие» имён параметрами и типичные ошибки, из-за которых код либо не компилируется, либо ведёт себя непредсказуемо.