Boost logo

Boost :

From: Stefan Roiser (stefan.roiser_at_[hidden])
Date: 2006-01-30 10:37:53


On 30 Jan 2006, at 15:03, Stefan Seefeld wrote:

> Stefan Roiser wrote:
>> 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.
>
> How does this compare to OpenC++ (http://opencxx.sf.net) ?
>
> Also, have you looked into synopsis (http://synopsis.fresco.org) ? It
> started by using the OpenC++ parser and infrastructure, but has been
> largely rewritten since then.

I was not aware of synopsis. Both projects are very interesting but
their scope seems to be different. I understood that both use
reflection as a vehicle for their needs while Reflex only
concentrates on introspection and interaction with C++. Reflex does
also not try to parse C++ definitions itself but leaves this to
gccxml (a frontend of gcc) and subsequently processes it's xml output
to produce dictionary source code. My guess is, that it is very hard
to implement a C++ parser. So with Reflex the dictionary information
for any C++ definition which is compilable with gcc, can be produced.
What may also be important is, that reflection source code is
produced in a non-intrusive way and that interaction with objects
from the meta-level is possible.

Cheers

        Stefan

-- 
Stefan Roiser
CERN, PH Department
CH - 1211 Geneva 23
Mob:+41 76 487 5334
Tel:+41 22 767 4838
Fax:+41 22 767 9425

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk