On Wednesday, 27 February 2013 at 05:34:44 UTC, kenji hara wrote:
The mistake in C is mixing of function name and function
address.
At least there is one ambiguity which appearance and meaning
does not
correspond one-to-one.
That is false. In C, function pointers are done as follow :
void foo() {
printf("foo");
}
void (*functionPtr)(); // equivalent to D void function()
functionPtr;
functionPtr = &foo; // Note the presence of & operator.
functionPtr(); // Call foo
This is why I don't understand the point the 3 of you are trying
to make. Current behavior of D is much more close to C than what
the DIP proposes.
This behavior is very specific to C and C++. If C's behavior was
a mistake, then it an argument FOR this DIP, not against.
In current D, the ambiguity is _already_ resolved - if you want
to function
address, use & operator.
D behave very much like C on that regard, so I don't really see
how this can be true.
As far as I see, DIP27 will overturn the chess board, remove
property
feature, change the meaning of 'foo', deprecate '&foo', and
finally add
nothing for the language users.
No, DIP27 is only about functions. It says nothing about
properties. It add stable foundation we can build upon.