问题 How do I do something like this, but in a way that will compile, and hopefully without insane typedefs? auto b; auto g; if (vertical) { b = [=, &b_](int x, int y) -> bool { return b_[x + y*w]; }; g = [=, &g_](int x, int y) -> int& { return g_[x + y*w]; }; } else { b = [=, &b_](int x, int y) -> bool { return b_[y + x*w]; }; g = [=, &g_](int x, int y) -> int& { return g_[y + x*w]; }; } 回答1: The auto b; and auto g; would need to be initialised so that the compiler would be able to determined