How to foreach over a DList?

monarch_dodra monarchdodra at gmail.com
Mon Mar 31 14:55:01 PDT 2014


On Monday, 31 March 2014 at 21:41:16 UTC, H. S. Teoh wrote:
> Argh, why is opSlice non-const? :-(  Please file a bug.

If opSlice was const, then you'd get a const slice, with const 
reference. You wouldn't even be able to iterate on it.

With some extra code, you could create some sort of "slice of 
immutable" type, but you'd still only be able to get const items.

We *could* add a const *overload* but...

> Or avoid using const for containers if you can.

That. D's "turtles all the way down" const doesn't work like 
C++'s "head only" const. As a general rule, don't use too much 
const in D, *especially* for containers-like objects...

At this point, adding a const overload would be nothing more that 
a still unusable mess, with extra maintenance overhead.


More information about the Digitalmars-d-learn mailing list