Preprocessing C++ : Meta-Class Aspects

Edward D. Willink and Vyacheslav B. Muchnick.

C++ satisfies the previously conflicting goals of Object-Orientation and run-time efficiency within an industrial strength language. Run-time efficiency is achieved by ignoring the meta-level aspects of Object-Orientation. In a companion paper [15] we show how extensions that replace the traditional preprocessor lexical substitution by an Object-Oriented meta-level substitution fit naturally into C++. In this paper, we place those extensions in the context of a compile-time meta-level, in which application meta-programs can execute to browse, check or create program declarations. An extended example identifies the marshalling aspect as a programming concern that can be fully separated and automatically generated by an application meta-program.

PDF of full paper. 46kB.

FOG home page.

Ed Willink's home page.

Edward D. Willink
6 April 2006