Вопрос в том, почему программа печатает идентификатор: 0, идентификатор: 1, идентификатор: 2, 42 вместо идентификатора: 42, идентификатор: 43, идентификатор: 44, 45.
int main()
{
int id = 0;
auto f = [id] () mutable {
std::cout << "id: " << id << std::endl;
++id; // OK
};
id = 42;
f();
f();
f();
std::cout << id << std::endl;
return 0;
}