Будет работать, если counter в список захвата лямбды засунуть и сделать лямбду мутабельной: auto func() { return [num=0]() mutable { num ++; cout << num << endl; }; }
Будет работать, если counter в список захвата лямбды засунуть и сделать лямбду мутабельной: auto func() { return [num=0]() mutable { num ++; cout << num << endl; }; }
Будет работать, если counter в список захвата лямбды засунуть и сделать лямбду мутабельной: auto func() { return [num=0]() mutable { num ++; cout << num << endl; }; }
и разве & не означает что оно все переменные из блока ниже покрывает?
и разве & не означает что оно все переменные из блока ниже покрывает?
Нет. & означает, что в список захвата _по_ссылке_ попадают все локальные переменные, видимые в точке определения лямбды. Локальные переменные лябды - мимо кассы.