Introspective is a C++ framework for runtime object introspection.


  • Message passing OO
  • Object oriented (in contrast to 'normal' class orientation of C++/Java)
  • Introspection
  • Dynamic inheritance
  • Runtime class / object definition
  • DSL

Message passing OO

Method triggering is performed through messages (introspective::Message), passed a dispatcher. Entities able to dispatch messages are called receiver (introspective::Message::Receiver). There are basically three types of receivers:
- class: instances of introspective::Class;
- object: instance of introspective::Object;
- proxy: instances og classes defined inside the introspective::proxy namespace;

Object orientation

Opposed to classic OO languages (like C++ or Java) with Introspective also Objects can define, override or hide methods and properties in runtime.


Every class or object has the ability to examine its own type, methods and properties in runtime;

Dynamic inheritance

At any time a class (instances of introspective::Class) or objects (instances of introspective::Object) can modify their inheritance hierarchy modifying on the fly their OO behaviour.

Runtime class / object definition

Every class and / or object can change its behaviour by adding / removing properties and methods in runtime.


by C++ operator overloading the base syntax for a minimal domain specific language has been introduced.


Basic concepts

Joomla templates by a4joomla