
On 11/7/2013 6:20 AM, Eric Niebler wrote:
The trick, of course, will be keeping intermediate temporary ranges alive long enough to avoid lifetime issues when we chain adaptors and assign the result to a local variable. I think a range library that's sensitive to the value category of range objects and makes copies of rvalue ranges would solve this problem. Thoughts?
Is it time for Boost.Range 3.0?
I've now built a filter_range, transform_range, and an istream_range in this vein. Initial results are looking promising, but I haven't benchmarked performance, yet. A commenter on my blog claims to have benchmarked perf of istream_range, with good results, which is encouraging. If anybody wants to take a peek, you can find the code here: https://github.com/ericniebler/range-v3 I'm making no effort to maintain source compatibility, going instead with the design that seems right to me for C++11. -- Eric Niebler Boost.org http://www.boost.org