Boost logo

Boost :

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");

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