--- 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
> 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
> 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
auto a = new int(5, 5) = void;
int 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: -------