http://d.puremagic.com/issues/show_bug.cgi?id=5603
--- Comment #4 from bearophile_h...@eml.cc 2011-02-17 10:13:58 PST --- (In reply to comment #3) > First, this only really happens when the type is numerical. For example, a > string array would fail to compile with an integral initializer. Also, a void > initializer cannot be mistaken for a dimension size. > > Second, I can see what you are saying, but I don't think this error will > affect > much in practice. It isn't often that one changes the number of dimensions. > Readability-wise, however, it's not obvious whether the last element is an > initializer (an IDE might make this clearer with syntax coloring). > > Your proposal clearly separates the value from the dimensions, but it probably > is unacceptable due to parsing requirements. Plus it looks very bizarre. It looks somewhat like the fixed-sized initialization syntax. > If we are doing syntax changes, I think we need something unorthodox if we > want > to make this clear. What about: > > auto a = new int[][](5, 5; 2); > auto a = new int[][](5, 5, =2); > auto a = new int[][](5, 5 : 2); > auto a = new int[][](5, 5) : 2; The last line is very close to my suggested syntax, and it has the advantage to be intuitive for D programmers, because it's a copy of the fixed-sized initialization syntax: auto a = new int[][](5, 5) = void; instead of: int[5][5] a = void; > I still think the original syntax I proposed is not different from functions > that contain default parameters, Named arguments (as Python ones) are safer than default ones. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------