The Thermopylae excerpt of TDPL available online
Leandro Lucarella
llucax at gmail.com
Thu Oct 29 11:05:52 PDT 2009
Andrei Alexandrescu, el 29 de octubre a las 12:23 me escribiste:
> Leandro Lucarella wrote:
> >Leandro Lucarella, el 29 de octubre a las 13:21 me escribiste:
> >>Andrei Alexandrescu, el 28 de octubre a las 23:38 me escribiste:
> >BTW, it looks like array literals will be dynamic arrays, from the code in
> >your book. Can you or Walter explain why this is better to make array
> >literals statically stored immutable memory like strings (which adds an
> >inconsistency to the language)? Is this just to avoid [1,2,3].dup; when
> >you want to get a dynamic array from an array literal or is there other
> >reasons?
>
> I don't have a better explanation than the excerpt:
>
> Beware, however: if you replace @int[3]@ above with @auto@, @a@'s type
> will be deduced as @int[]@, not @int[3]@. Although it seems logical
> that the type of \cc{[1, 2, 3]} should be @int[3]@ which in a way is
> more ``precise'' than @int[]@, it turns out that dynamically-sized
> arrays are used much more often than fixed-size arrays, so insisting
> on fixed-size array literals would have been a usability impediment
> and a source of unpleasant surprises. Effectively, the use of
> literals would have prevented the gainful use of @auto at . As it is,
> array literals are @T[]@ by default, and @T[n]@ if you \emph{ask} for
> that specific type and if @n@ matches the number of values in the
> literal (as the code above shows).
I saw that, but I think introducing an inconsistency (and depart on how
literals usually work) is worse than having to explicitly state the type
or adding a .dup to the literal.
But I guess it's just me.
Another question about the book: you explain dynamic arrays are being
represented by a start and end pointer, much like the STL, but that's not
the real implementation. I know you say in the book that the
implementation doesn't necessarily work like that, but I wonder if you
decided to explain things like that because it's planned to change the
dynamic arrays implementation or just because you found it more didactic.
Thanks.
--
Leandro Lucarella (AKA luca) http://llucax.com.ar/
----------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------
Algún día los libros desterrarán a la radio y el hombre descubrirá el
oculto poder del Amargo Serrano.
-- Ricardo Vaporeso. El Bolsón, 1909.
More information about the Digitalmars-d
mailing list