C++ seems to be trying to maximise confusion these days.
struct foo { void bar(int a, int b) { auto lambda = [&] (auto this self) { this->compute(); }; } void compute(); };