http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Preprocessor_Macros