On Monday, 12 November 2012 at 08:37:20 UTC, Tommi wrote:
This whole mess makes me wish that D was designed so that all types had value semantics (by convention, since it's probably not possible to enforce by the language).

"..so that all types had value semantics". That's a bit too harsh. Rather there would need to two kinds of types:

1) struct:  own their data, value semantics
2) referer: don't own their data, reference semantics

Dynamic arrays would fall into the first category; owns their data, have value semantics.

Slices of dynamic arrays would be a separate type, falling into the second category; don't own the data, reference semantics.

Range could be of either kind of type.

You'd need two kinds of pointers too: the kind that owns its data, and the kind that references data that someone else owns.

And you'd be able to differentiate between these two kinds of types at compile-time.

Disclaimer: I promise not to spam this thread with this idea any further.

Reply via email to