mutable {return ++i;};
}
std::function<std::function<int()>(int)> lambda = [](int i)
{
return [=]() mutable {return ++i;};
};
class bar
{
int i;
public:
explicit bar(int _i) : i(_i) {}
int operator()() {return ++i;}
};
а зачем такое ? Только лямбдой всё можно сделать...
второй вариант сделан через лямбду
auto lambda = [](int i) { return [=]() mutable {return ++i;}; };
да знаю про auto, просто хотелось разобраться по типам, что будет возвращаться, хотя конечно, мой вариант и ваш возвращают разные типы
Если что std::function это не типа этого выражения
Что лямбда - неизвестный тип, что std::function не инстанциированный - неизвестный тип.
Обсуждают сегодня