我想以最优雅的方式创建一个只返回无限序列的前向迭代器.例如,所有自然数的序列.
基本上我想要这个f#代码的C等效:
let nums = seq { while true do yield 1 yield 2 }
上面的代码基本上创建了一个返回[1; 2; 1; 2 …]的枚举器
我知道我可以通过写一个课来做到这一点,但是所有新的lambdas和所有……都必须有一个更短的方式……
int i = 0; auto gen = boost::make_generator_iterator([=]() { return i++; });
C 14版:
auto gen = boost::make_generator_iterator([i=0]() { return i++;});
文档是here.
P.S.:我不确定它是否可以在没有result_type成员的情况下工作,C 03仿函数需要它.