Transience of .front in input vs. forward ranges

Tommi tommitissari at hotmail.com
Mon Nov 12 15:59:32 PST 2012


On Monday, 12 November 2012 at 22:44:22 UTC, Jonathan M Davis 
wrote:
> On Monday, November 12, 2012 23:01:22 Tommi wrote:
>> NOTE: All of the above assumes that D were designed so that all
>> types had value semantics.
>
> Which will never happen. So, any discussion based on that 
> premise is pretty pointless. And this discussion would
> never have happened in the first place if D had no reference 
> types, because you'll never have a transient front with a value 
> type.

Oh, it was just a matter of miscommunication then. I bet you 
missed the following post of mine, which made it clear that I 
wasn't suggesting a solution, but simply dreaming of a better 
language design (like I usually am):

On Monday, 12 November 2012 at 08:37:20 UTC, Tommi wrote:
> Now I finally see that deepDup/deepCopy/clone is not a (good) 
> solution, because it would be inefficient in a lot of 
> situations. 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).
>
> That would mean:
> 1) No classes. Just duck-typing based polymorphism à la go 
> language.
> 2) Dynamic arrays of mutable types would have had to been 
> implemented as copy-on-write types à la Qt containers.
>
> Don't know about the performance implications of COW though.

I may throw these wild ideas around, but I don't do it in order 
to have them implemented by D, but so that some-one could crush 
those ideas with counter-arguments. But yeah, this would be a 
wrong thread to have that discussion anyway.


More information about the Digitalmars-d mailing list