On 2011-07-18 08:08, Lars T. Kyllingstad wrote: > On Tue, 19 Jul 2011 00:57:44 +1000, Daniel Murphy wrote: > > "Lars T. Kyllingstad" <[email protected]> wrote in message > > news:[email protected]... > > > >> The specific cases in question are templated functions, where I don't > >> know whether the array is immutable unless I specifically test it. I > >> simply used arr.idup, assuming the compiler would optimise away the > >> duplication when arr is immutable. But it's no big deal to change it > >> to > >> > >> static if (!is(T == immutable)) return arr.idup; > >> > >> -Lars > > > > Doesn't std.conv.to do this for you? > > It probably does! I hadn't thought about that, but I'll check it out > now. Thanks!
It does. That's why you should generally use std.conv.to instead of dup or idup directly. Really, dup and idup should only be used if you definitely _want_ a duplicate. Otherwise, std.conv.to will just (i)dup it when you actually need to. - Jonathan M Davis
