
Stefan Roiser <stefan.roiser@cern.ch> writes:
Hi,
We would like to propose a library and tools which enhance C++ with reflection capabilities. The package, "Reflex", provides a library for runtime introspection and interaction with C++ "constructs" such as objects, types, scopes, members, templated types, ... The library has no external dependencies and was developed with the ISO/IEC standard for C++ as guideline.
Production of dictionary information of arbitrary C++ definitions is done via a Python script (genreflex), in a non-intrusive way, using an external tool (gccxml - www.gccxml.org). The generated dictionary source code can be compiled into a shared library, dynamically loaded and accessed via an API providing the introspection information.
You can find more information at
Below you may find an example code snippet which exposes a subset of the functionality. The four different parts show 1 - the definition of the example classes 2 - how to generate the dictionary information 3 - example on introspection (re-generate classes from the dictionary information) 4 - examples on interaction (get/set data members, invoke functions, con/destruct objects)
How does this work relate or compare to http://www.language-binding.net/pygccxml/pygccxml.html? The latter already has some traction in the Boost community because of its use in http://www.language-binding.net/pyplusplus/pyplusplus.html -- Dave Abrahams Boost Consulting www.boost-consulting.com