|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2006-01-31 13:40:22
Stefan Roiser <stefan.roiser_at_[hidden]> writes:
> On 30 Jan 2006, at 17:08, Stefan Seefeld wrote:
>
> 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");
Very interesting. Where do you get the object code for
foo::myFunction? Or have you implemented a full C++ interpreter?
Have you considered something like the object interface of
Boost.Python?
Type t = Type::ByName("foo"):
Object instance = t();
Object ret_obj = instance.member("myFunction")();
Then you'd also have, e.g.
Object enlarged = instance & 5;
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk