Denis Koroskin wrote:
On Thu, 29 Oct 2009 15:12:51 +0300, Lars T. Kyllingstad
<pub...@kyllingen.nospamnet> wrote:
Jason House wrote:
Andrei Alexandrescu Wrote:
It's a rough rough draft, but one for the full chapter on arrays,
associative arrays, and strings.
http://erdani.com/d/thermopylae.pdf
Any feedback is welcome. Thanks!
I still think is expressions are a glaring problem. Somewhere in the
text, you use assert(!is(typeof(... as support for what you're
talking about. That particular construct feels more like a hack
someone stumbled into than clean, easy to read code. It's the type of
thing a programmer will get wring unless they use it frequently. Even
you've screwed it up in past Phobos releases! IMHO all is(...)
expressions should be revisited. Have you written the section(s) on
them yet?
I don't think he uses is(typeof(...)) in the text. The code snippets
in question are marked "Note: normally the code below would not be
included...", and I suppose he's put them there as a reminder for
himself and Walter on what needs to be fixed before the book comes out.
I agree with you, though, is(typeof(...)) is quite often misused, or
at least used in an ugly way. Why not use __traits(compiles, ...)
instead?
-Lars
... which is at least as ugly.
I disagree. Pretend you are just learning D, and you are presented with
the following two lines of code:
static assert (is(typeof(XXX));
static assert (__traits(compiles, XXX));
Which of these would you most likely assume to be a check on whether XXX
is compilable code?
What I cannot for the life of me understand is WHY the double
underscores? What's wrong with just "traits"?
-Lars