Don: Thank you for bringing up this topic, Don :-)
In D, beside the C syntax for function types, there also is the C syntax for function pointers. I presume it gives less problems than the first one. See also: http://d.puremagic.com/issues/show_bug.cgi?id=4530 > In the past, Walter has mentioned a weak argument for retaining C-style > array declaration syntax, although I personally find it very > unconvincing. But C's hideous function pointer syntax is on a whole > other level. It's really hurting us. I believe it should be deprecated > immediately. But the 'function type' syntax shouldn't be allowed even as > a deprecated syntax. It's horrible. One of the faults of C++, that increases its useless complexity a lot, is to have in many cases two ways (the C way and the C++ way) to do something. Generally the idea of duplicated syntax is bad. But I have translated lot of C code to D1 and I've seen that the possibility that D1 gives me to leave matrix definitions as they are helps me reduce the amount of changes to the C code needed to perform the translation (and I think this may help avoid some translation bugs, but I have no proof of this). So I leave declarations like: int mat[5][16]; And only later, when the D1 programs works correctly, I replace them by code like: int[16][5] mat; To merge such two needs, I have suggested a compilation switch, it may be named "-cstyle". It's designed to help translation of C code to D. If a module is compiled with -cstyle then DMD accepts C-style array declarations and C-style functions pointers, and it also gives warnings against passing by value large fixed-sized arrays and against the usage of global floating floating values before their initialization (those are two things that may trip a person that translates C code to D, because D passes fixed-sized arrays by value and doesn't initialize global floats to 0 but to NaN). The idea is, when you need to translate C code to D you use the -cstyle switch, that allows some C syntax and gives those two extra warnings. When your code works, you may finish the translation to D and stop using the -cstyle switch. See: http://d.puremagic.com/issues/show_bug.cgi?id=4580 What kind of error message does your patch gives for 4962? Bye, bearophile