C++23 lambda 递归写法

查看 46|回复 1
作者:sl0000   
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

return, int, self, auto

ysc3839   
https://en.cppreference.com/w/cpp/compiler_support/23
怀疑是没实现?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部