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


Reply via email to