Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-02-01 15:50:25


Edward Diener <eddielee_at_[hidden]> writes:

> David Abrahams wrote:
>> Stefan Roiser <stefan.roiser_at_[hidden]> writes:
>>
>>> On 31 Jan 2006, at 19:40, David Abrahams wrote:
>>>
>>>> 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?
>>> foo::myFunction will be invoked through a stub function which is part
>>> of the dictionary library for class foo. A dictionary library may be
>>> dynamically loaded in a program.
>>
>> Soooo.... what about templates? Do you have to do something to
>> manually instantiate them? Or do you do some kind of on-the-fly
>> compilation?
>
> Since templates are not types, I would leave out the instantiation of
> templates into types, which is a compile-time mechanism, from a run-time
> reflection system

That presumes that the only thing worth reflecting about are types. I
of course want reflection into templates (and not just class
templates, either). But -- no offense intended of course -- unless
you're part of this effort, I'm not really asking what you would do.
I want to know what the Cern people are doing and are planning to do.

-- 
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