Removing from SList (std.container)...

Tobias Pankrath tobias at pankrath.net
Wed Jun 27 14:22:30 PDT 2012


On Wednesday, 27 June 2012 at 20:29:02 UTC, Roman D. Boiko wrote:
> On Wednesday, 27 June 2012 at 20:14:53 UTC, Steven 
> Schveighoffer wrote:
>> Removal of that element is perfectly possible, you just need 
>> to maintain a reference to its predecessor.  Which SList's 
>> range does not keep track of.  It all depends on tradeoffs of 
>> what you want for performance, vs. features.  It's why I 
>> contend that generic singly linked list is difficult to 
>> create.  Can't please everyone.
>
> Yes, I agree.
>
>> And iterators are not necessary, ranges are quite possible.
>
> In this respect it is not only a performance vs. features 
> tradeoff, semantics is (usually) different. Of course, we might 
> use a range for what is semantically an iterator. But it feels 
> unnatural for me.
>
> E.g., to point to an element in the middle of some range we 
> would need to create another range and pass it to a function 
> along with the original range. I would hesitate to call them 
> ranges unless that is explicitly a goal for some particular 
> application. If that was the case, it would require an explicit 
> explanation. (IMO)

Why pass the original range?


More information about the Digitalmars-d-learn mailing list