Problems with sort

Craig Black craigblack2 at cox.net
Fri Dec 10 19:04:41 PST 2010


> This concerns a decision not yet firmed-up on whether objects should be 
> cheap to copy or not.
> 
> What happens is that sort wants to swap elements at given indices. Your 
> opIndex, I assume, returns by value. (If it returned by reference you'd 
> have no problem sorting.) Then sort makes a number of heroic attempts at 
> figuring out how to swap elements in your range (e.g. by trying 
> moveAt()) before failing in frustration.
> 
> If we mandate cheap copy, then swap via two copies should be fine, which 
> simplifies implementation a great deal and also your life as a user of 
> it. We haven't made that decision yet. There is the concern that things 
> would become too inefficient.
> 
> 
> Andrei

Thanks for the response.  I appreciate the emphasis on efficiency.

But my opIndex does return a reference:
ref T opIndex(int i) { ... }

-Craig


More information about the Digitalmars-d mailing list