http://d.puremagic.com/issues/show_bug.cgi?id=4551
Denis Derman <denis.s...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |denis.s...@gmail.com --- Comment #5 from Denis Derman <denis.s...@gmail.com> 2011-01-28 06:30:00 PST --- (In reply to comment #1) > > "Static Initialization of Static Arrays" > > > > The documentation states: > > "These arrays are static when they appear in global scope. Otherwise, they > > need > > to be marked with const or static storage classes to make them static > > arrays." > > > > In non-global scope, I can only compile if the array is marked with static > > or > > static const. > > > > const alone will not compile for me: > > > > enum Color { red, blue, green }; > > > > void main() { > > const int value[Color.max + 1] = [ Color.blue:6, Color.green:2, > > Color.red:5 > > ]; > > } > > > > test2.d(192): Error: Integer constant expression expected instead of > > Color.blue > > test2.d(192): Error: Integer constant expression expected instead of > > Color.green > > test2.d(192): Error: Integer constant expression expected instead of > > Color.red > > test2.d(192): Error: Integer constant expression expected instead of > > Color.blue > > test2.d(192): Error: Integer constant expression expected instead of > > Color.green > > test2.d(192): Error: Integer constant expression expected instead of > > Color.red > > I'm not sure what was meant here by Walter. I suspect that "Static array" > should be changed to "fixed sized array" everywhere, but that's a huge change, > that I'm not comfortable making. I think the text is meant to say that in > order to make an array a "static variable" (i.e. keeps its value across > function calls) you have to apply the static attribute. Actually, what is "static" (in the D sense of predefined, knwon at compile-time), is the *size*, and only the size. So, the proper (again using D's sense of "static") term could be "static-size array". Note that in english "static" and "dynamic" 's first senses are "that cannot change" and "that can change". This is really not what those words mean in D and similar languages. "static" and "dynamic" are used in D to mean what in math is called "constant" (predefined) and "variable" (defined at application time). Lol! Denis -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------