On 6/11/22 14:08, Gabriel Ravier wrote:

> Do we want to add a completely unnecessary feature, just for symmetry with C++, even if it poses a danger of breaking (both human and script) readability of function declarations/definitions, especially when hidden in macros?

I actually don't get the trouble with this. Your tool already can't parse declarations if they don't follow a certain coding style, so you can just add this restriction to the coding style that's required.

True-ish. But when I mean that my tool requires a same coding style, I mean that it just requires that the code hasn't been written by some monkey. Things that are not correctly parsed by my tool are of this kind:

int foo(void)
 {
     return 7;
     }

or

#define empty

int foo empty(void)
{
    return 42;
}

Modulo errors in the regexes, any rational indentation is supported (except for K&R definitions, which are also impossible to parse with a regex, but ISO C deprecated them a long time ago).


> I still have the hope that if the feature is finally kept in C23, absolutely no-one will ever use it, but then I question the introduction in the first place.

Well in the same way, `int long signed const typedef long x;` is valid C, and I do hope that nobody will ever use it, but I don't think we should change C's grammar to disallow it.

Fair point :)


Cheers,

Alex


P.S.: Please consider deprecating 'auto' some day. It would be nice to see C++'s auto in ISO C some day, even if it's 2060. I'm not entirely happy doing `#define auto __auto_type` (of course it's UB, but it's nice) ;)


--
Alejandro Colomar
Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to