Generically call a function on Variant's payload?

Nick Sabalausky (Abscissa) SeeWebsiteToContactMe at semitwist.com
Tue Aug 21 06:04:50 UTC 2018


On 08/20/2018 10:57 PM, Jonathan M Davis wrote:
> 
> Runtime reflection is theoretically possible in D, but it requires
> generating the appropriate stuff for every type involved so that the runtime
> stuff has something to work with. Java built all of that into the language
> and has the JVM to boot, which fundamentally changes some of what can be
> done. With D, we're basically in exactly the same boat as C or C++ except
> that we have better compile-time type introspection. In principle, a runtime
> reflection facility could be built using that, but even if it were part of
> Phobos, it would still have to be opt-in. So, I don't know how useful such a
> solution would ever be outside of very specific use cases. Regardless, given
> that D's object files, linking, etc. are using the C tools, it was never
> going to be the case that Java-style runtime reflection would be built in to
> D like it is with Java.

Yea. Not to disagree at all with those reasons, but that is unfortunate. 
I've long been interested in how various features of D (not exclusively 
D, though) combine in ways that, in effect, obsolete much of traditional 
OOP inheritence-based polymorphism - offering the same abilities of OOP 
but without many of the notable downsides. Java-style runtime reflection 
would take us that much further in this regard. (Plus, it would make D 
that much more of a universal-toolbox of a language.) Oh well, dreams vs 
reality ;)



More information about the Digitalmars-d-learn mailing list