Introspective
Introspective is a C++11 framework for runtime object introspection. Similarly
to other programming languages such as Java, everything is an object, also
classes. More exactly an Introspective class is an instance of the C++ class
introspective::Class.
Features:
- 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 of classes defined inside the introspective::proxy
namespace;
- object oriented: opposed to classic OO languages (like C++ or Java)
with Introspective also Objects can define, override or hide methods
and properties in runtime;
- Introspection: 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;
- duck typing: message passing, full object orientation and introspection
simplify the duck typing mechanism;
- DSL: by C++ operator overloading the base syntax for a minimal domain
specific language has been introduced;
Prerequisites:
Distro supported:
- Centos-7
- Debian-8
- Gentoo
- Fedora-23
- OpenSUSE Leap 42.1
- Ubuntu 14