Friday 24 December 2010 @ 06:24:34 Caligo: > Greetings, > > I just joined here, so sorry if this has been posted before. > > I'm reading TDPL and the example on page 8 doesn't compile. I'm using the > latest GDC with GCC 4.4.5. I've checked the errata, but nothing for this > error. > > import std.stdio; > import std.string; > > void main(){ > > size_t[char[]] dictionary; > foreach(line; stdin.byLine()){ > foreach(word; splitter(strip(line))){ > if(word in dictionary) continue; > auto newID = dictionary.length; > dictionary[word] = newID; > writeln(newID, '\t', word); > } > } > //writeln(dictionary.length); > } > > > This is the error: > dictionary.d:12: Error: associative arrays can only be assigned values with > immutable keys, not char[] > > If i use immutable keys, it works, but it defeats the purpose. So what's > wrong with the code?
It works for DMD, I think it's a GDC bug (i'm new in D too, so i might be wrong). Keep in mind that GDC implements only D 1.0 and book has D 2.0 code. Sincerely, Mariusz Gliwiński
signature.asc
Description: This is a digitally signed message part.