Object-oriented preprocessor fit for C++
Edward D. Willink, Vyacheslav B. Muchnick · IEE Proceedings - Software · 2000
C++ retains the ANSI C preprocessor, although its limitations have been widely recognised. The authors describe FOG, a meta-compiler for a super-set of C++, that provides replacement preprocessing and introduces static meta-programming, while preserving the spirit of C++. They show how implementation of preprocessor functionality in an Object-Oriented style eliminates unnecessary replication from practical C++ programs, and supports recent Object-Oriented Programming developments to a much greater extent than existing tools.