Hi Marc, > I was thinking of macros like P99_NARG or P99_FOR, which are > non-trivial to write but can be very helpful to write practical user > macros (e.g. macros with default arguments).
In order to avoid bloat, I would suggest to start with a particular problem (e.g. macros with default arguments, or functions with default arguments, or GL_COUNTER), and introduce only as much macrology as needed to solve that particular problem. > > 4) Portability. > > If there's a compiler that doesn't grok the code, you need to provide > > a reasonable workaround/fallback/replacement or drop the module entirely. > > Some functionality will be limited to C99, but this is true for some > other modules as well, isn't it? Yes. But it is something important to watch out, as not all compilers support all of C99. > An average user of Gnulib, however, may not want to think > of how to write GL_CONCAT fool-proof or GL_COUNTER with support for > specific compilers. If you know of shortcomings of _GL_CONCAT, we need to determine whether we should just document a limitation, or spend the necessary macro complexity in order to fix it. Bruno