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