typedef void fp_t(); void foo(fp_t fp) { fp(); } int square(int num) { void square_nested() { num = num * num; } foo(square_nested); return num; }
int square(int num) { auto nested = [&num](){ num *= num; }; nested(num); return num; }
auto nested = [](int& num){