One thing I often do in my code is create custom trace / output functions that recursively go through and print out properties. However, this requires that I add some custom code to my classes which I don’t really want in the final version.

So, I started exploring pre-processors that I could use to make it easier to add and remove debugging code. I first looked at m4. While it seems to be very powerful, it was overkill for what I needed, and looked to be very difficult to use. Christian Cantrell then suggested that I look at cpp, a C pre-processor. I checked it out, and it does exactly what I need, in an easy to learn and use syntax.