Micah Cowan wrote:
> Several years ago, I began work on explaining the differences between
> C90, C99, and common vendor extensions; I never finished, but the
> section on inline functions may be helpful:
> http://micah.cowan.name/tech/c-changes.html#N0.238

Well, neither your writeup nor mine
  <http://lists.gnu.org/archive/html/bug-gnulib/2006-11/msg00055.html>
makes the issue really clear. The only clear thing is what "static inline"
means.

> Perhaps the best practice going forward, would be to allow feature
> testing that could produce macros corresponding to each desired
> behavior.

Additionally to such macros, one also needs a code style/convention that
makes it possible to write such code easily, that
  - looks maintainable,
  - works also in C++ mode,
  - avoids bloating object files and executables on any platform (the
    famous C++ problem, where excessive use of inline functions and
    templates leads to huge executable - example: 'boost').

We have tried different approaches (see e.g. xalloc.h or gl_list.h),
and I don't think they fulfill the three requirements above.

Bruno



Reply via email to