From: Stefan Roiser (stefan.roiser_at_[hidden])
Date: 2006-01-30 16:01:08
On 30 Jan 2006, at 17:08, Stefan Seefeld wrote:
>> 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.
> Right, though gccxml has some drawbacks, too.
We have fortunately not found problems yet and we generated
dictionaries for a lot of user code in our environment and also
"external" libraries. These dictionaries are then e.g. further used
for persistence of objects.
>> 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.
> That is true for synopsis, too.
With interaction with objects I meant e.g. through the meta-level
instantiate a class, get/set the data member values, call a function
on that instance, retrieve the function's return value and so on. I
may have missed that, but I couldn't find examples on the synopsis
page for this functionality.
Reflex code for this would look something like
Type t = Type::ByName("foo");
Object instance = t.Construct();
Object ret_obj = instance.Invoke("myFunction");
-- 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