Getting derived classes

Ary Borenszweig ary at esperanto.org.ar
Fri Oct 17 07:43:37 PDT 2008


Steven Schveighoffer wrote:
> "Ary Borenszweig" wrote
>> Andrei Alexandrescu escribió:
>>> dsimcha wrote:
>>>> I know that, in std.traits, there's a template that spits out all base 
>>>> classes
>>>> for a given class.  Based on reading the source, it seems to work based 
>>>> on a
>>>> rather interesting use case for is expressions.  Is there any equivalent 
>>>> way
>>>> to do the opposite:  For any given position in a class hierarchy, to get 
>>>> a
>>>> tuple of all possible descendants?
>>> That's not possible in general because in D the derived classes form an 
>>> open set. I guess it could be done at runtime via reflection (not 
>>> implemented afaik), but not at compile time.
>> But for a given set of modules, the hierarchy is finite and known.
> 
> Not at compile time, only at link time.  You can't compile code at link 
> time.

I still don't understand why you can't do this at compile time, assuming 
you have the source code for everything that you'll link into your 
executable.

How is a class hierarchy different in D than in Java? Eclipse JDT's has 
a type hierarchy feature, and Bruno was going to implement it in 
Mrnmhrm, all based on what's defined in the modules (you can say, 
compilte-time). What's the problem?

> 
> -Steve 
> 
> 



More information about the Digitalmars-d mailing list