Wrap types within round parenthesis so they can always be passed as macro parameters.
Preprocessor metaprogramming tools including repetition and recursion.
Variadic Macro Data library.