: C++ retains the ANSI C preprocessor, although its limitations have been widely recognised. We 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++. We 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.
Edward D. Willink, Vyacheslav B. Muchnick