Principled method of lookup-or-insert in associative arrays?
spir
denis.spir at gmail.com
Sat Nov 20 12:31:43 PST 2010
On Sat, 20 Nov 2010 21:21:58 +0100
Tomek Sowiński <just at ask.me> wrote:
> Dnia 20-11-2010 o 17:09:00 spir <denis.spir at gmail.com> napisał(a):
>
> >> It's busting the whole const system to smithereens.
> >>
> >> char[] chars = "abc";
> >> char[] backdoor = chars;
> >> string s = chars;
> >> assert (s == "abc");
> >> backdoor.front = 'k';
> >> assert (s == "abc"); // fails. not so immutable, huh?
> > ???
> > backdoor and s do not denote the same element. One is a mutable array,
> > the other is immutable. Why should changing backdoor affect s? Whether
> > backdoor and chars denote the same array depends on whether "=" copies
> > or not dyn arrays. But from immutable string to mutable array, there
> > must be a copy (read: dup).
>
> OK, I get it. I still like it the way it is. Having worked with C++ code
> with overloaded assignment ops and implicit conversions, I see = that
> sometimes dups and sometimes aliases as a source of confusion and
> performance bugs. All this just to remove .idup (it's 5 chars!).
>
Yes, you may be right on this ("explicit is better than implicit", as python folks say).
Denis
-- -- -- -- -- -- --
vit esse estrany ☣
spir.wikidot.com
More information about the Digitalmars-d
mailing list