Introspective is a C++ framework for runtime object introspection.
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;
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;
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.
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.