On 19/11/2010 21:22, Jonathan M Davis wrote:
At runtime, the runtime type info for classes forms a DAG.

As D only allows single inheritance it should be trivial to find the
most derived class, though the runtime doesn't currently offer a
function for this.

Just because an object is able to know what its actual type is - or even its
base classes - does not mean that you could ask it what other types exist which
are derived from one of its base types or its exact type. Sure, D definitely
_could_ provide the necessary type information at runtime (C# and Java do that
sort of thing - which is why thy can have runtime reflection), but it doesn't. 
At
best, you can get information on the types of a particular object from that
object, not the types which exist in general.

- Jonathan M Davis

So just ignore the bit about dynamic cast completely then and repeat your first incorrect assertion.

Yes D and C++ do provide a limited amout of runtime type information.

It's called RTTI surprisingly enough. *cough*

Dynamic cast, *explicitly* asks at *runtime* if some base class can be converted to a *more derived* class.

You *can not* do that unless base classes know about the classes which *inherit from* them.

--
My enormous talent is exceeded only by my outrageous laziness.
http://www.ssTk.co.uk

Reply via email to