Doing some meta programming in attempt to replace C pre-processor