Dmitry Vinogradov skrev:
Calling process_range() twice is not a solution in my case. Copying references to a new container is a better way.
Regarding efficiency, can you look thru my rough concat() implementation attached to discover any its disadvantages?
Wow. Nice work! Some comments: 0. I prefer to use unsigned instead of std::size_t. std::size_t can be larger than a word IIRC. 1. You can call Stabilize() in increment(). 2. You should probably check It == End1 before Range == 0, because Range == 0 will be true most of the time during the iteration through the first range. 3. How can you avoid to store the second end iterator? How does the performace compare to creating a vector of references? (remember to call reserve()). If the performance is good,this baby should be included in the range library asap. -Thorsten