std::function[i] f;
f = [&](int i) {
if (i > 10) return i;
return f(i+1);
};
f(1);
// c++23
auto f = [](this auto&& self, int i) {
if (i > 10) return i;
return self(i+1);
};
f(1);
// 这么写报错, 是编译器问题(MSVC 17.5.3)还是就是这么设计的?
auto f = [](this auto&& self, int i) {
if (i