“I tried to commit suicide by sticking my head in the oven, but there was a cake in it.” -- Lesley Boone Oven is an advanced implementation of Range Library Proposal: namespace lambda = boost::lambda; using namespace pstade::oven; typedef any_range<int, boost::single_pass_traversal_tag> range; range sieve(range rng) { return rng|dropped(1)|filtered(regular(lambda::_1 % value_front(rng) != 0)); } r