A Metaobject Protocol for C++
This paper presents a metaobject protocol (MOP) for C++.
This MOP was designed to bring the power of meta-programming to
C++ programmers. It avoids penalties on runtime performance
by adopting a new meta-architecture in which the metaobjects control
the compilation of programs instead of being active during
program execution.
This allows the MOP to be used to implement libraries of
efficient, transparent language extensions.