Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Metaprogramming and metapreprocessing utilities for the enterprising developer. Featuring old standbys and novelties alike, including:

  • good old token pasting — concat.h
  • variadic argument counting — count.h
  • differentiating between >=1- and 0-argument lists — count.h
  • boolean algebra, including NOT, OR, AND, and XOR — bool.h
  • conditional expressions — cond.h
  • left and right folds — fold.h
  • maps — map.h
  • arithmetic — math.h (incomplete)

Except where otherwise noted, these utilities are standard, cross-platform use of the C preprocessor, and do not rely on e.g. GNU extensions.


Preprocessor-based interpolation of NSStrings. This allows you to interpolate complex strings without requiring you to remember which format specifier you want for each. You can still, however, customize the formatting of each individual parameter to specify precision or width.

Requires Foundation, and uses __attribute__((overloadable)) functions to generate the type specifiers for the format strings, since clang’s support for C11’s _Generic expressions appears to have difficulty when both char * and default options are added.

Some things you can do with it:

NSUInteger waysILoveThee = kLotsOfWays;
RXLog(@"How do I love thee? Let me count the ways: ", waysILoveThee);

Inspired by @pgor, who nerd-sniped me one fine morning.


A variety of utilities for the C preprocessor.



No packages published