On Thursday, 16 June 2016 at 01:57:19 UTC, Joerg Joergonson wrote:
Is there an efficient lazy way to make this happen?
No, I don't see how that would work.
Suppose I can't run the loop twice for performance reasons(there is other stuff in it) and I don't want to store the state and call info then sort them out afterwards.
Storing the state is your best bet. Based on your recent post about OpenGL I assume this is for the same project?
If so, you can reuse the storage buffer between frames. Generally speaking it's the allocations that are slow, copying some state to a buffer shouldn't be expensive. Use separate buffers for the Do1 and Do2 calls so you don't have to sort.