On Sun, 8 Dec 2002, Jeff Smith wrote:
I don't really care whether the ICOM_ macros go or stay in the current form, but if they stay, they should at least be corrected in the following sense.
Presently, a typical macro in obj_base.h is
#define ICOM_METHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \ public: virtual ret CALLBACK (xfn)(ta a,tb b,tc c,td d) = 0;
Note that we have na, nb, ... on the 'left' matching with a, b, ... on the 'right'.
Not that this causes problems, it's just that it isn't right.
It's right enough for the purpose it was meant for, which was to let you use the macros without bothering to specify the argument names (the macros would just use the names "a", "b", etc, so you didn't have to). Even in the current CVS you can still find this usage in dplay.h and dplobby.h. It wouldn't have made sense to separate the type ("ta", "tb", ...) and name ("na", "nb", ...) arguments to the macros if that wasn't the intention. (But it would have been possible to specify array arguments...)