I released Macrofun [0] a few weeks ago, which provides similar macros, but does not conform to standards. A commenter on my submission to /r/programming [1] pointed out the related `P99_FOR` macro of P99 [2], which handles "variable" number of arguments while conforming to standards.<p>Libpp's macros are implemented in a fashion similar to `P99_FOR`, but I think it's much cleaner. For example, `P99_FOR`'s handler macros are defined within a 10,000 line header file [3], and `P00_FOR_50` calls `P00_FOR_49`, so you're going to require as many preprocessor evaluations as arguments given. By contrast, `PP_MAP` is defined within a 300-line header file, and `PP_MAP_50` evaluates directly to the desired expression.<p>You can also change the argument limit of Libpp's macros to your liking, as detailed in the readme.<p>Libpp isn't as powerful or general as P99, but I'm finding it much easier to use. Perhaps that's just because I wrote it, though. Feedback would be really appreciated.<p>[0]: <a href="https://github.com/mcinglis/macrofun" rel="nofollow">https://github.com/mcinglis/macrofun</a><p>[1]: <a href="https://pay.reddit.com/r/programming/comments/260cb6/macrofun_standardsdefying_functionalprogramming/" rel="nofollow">https://pay.reddit.com/r/programming/comments/260cb6/macrofu...</a><p>[2]: <a href="http://p99.gforge.inria.fr/p99-html/group__preprocessor__for_gae3eb0e3a5216300874ed6cb9abc170ce.html#gae3eb0e3a5216300874ed6cb9abc170ce" rel="nofollow">http://p99.gforge.inria.fr/p99-html/group__preprocessor__for...</a><p>[3]: <a href="http://p99.gforge.inria.fr/p99-html/p99__generated_8h_source.html#l08297" rel="nofollow">http://p99.gforge.inria.fr/p99-html/p99__generated_8h_source...</a><p>I've answered some questions about Libpp on /r/programming and /r/c_programming:<p><a href="https://pay.reddit.com/r/programming/comments/27rutk/libpp_standardsconformant_functionalprogramming/" rel="nofollow">https://pay.reddit.com/r/programming/comments/27rutk/libpp_s...</a><p><a href="https://pay.reddit.com/r/C_Programming/comments/27ru43/libpp_standardsconformant_functionalprogramming/" rel="nofollow">https://pay.reddit.com/r/C_Programming/comments/27ru43/libpp...</a>