Use dup on Containers with const Elements

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jul 29 12:24:59 PDT 2016


On 7/29/16 3:00 PM, Q. Schroll wrote:
> Cases to consider: Arrays and AAs with const(T) Elements, where T is a
> value or a reference type respectively.
>
[snip]
> Questions:
> (1) Why do I have to specify the type here? Why does inference fail?
> (2) Why not just S[S]?
> The copy of a const S is a S so why is the copy of a (const S, const
> S)-pair not just (S, S)?
>

array.dup has the meaning to copy the original but make the elements 
mutable. At least, that's what it was when it was handled by the 
compiler/runtime.

So the reason for 1 is that you can't convert const(C) to just C without 
a cast, so you must specify the type.

I'm not certain about AA, as I don't remember how dup was defined on them.

-Steve


More information about the Digitalmars-d-learn mailing list