#include #include std::function generator = []{ int i = 0; return [=]() mutable { return i < 10 ? i++ : -1; }; }(); int main(void) { int ret = 0; while ((ret = generator()) != -1) std::cout << "generator: " << ret << std::endl; }