Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

rt.cast_

Implementation of array assignment support routines.
Authors:
Walter Bright, Sean Kelly

Source rt/cast_.d

pure nothrow @nogc Object _d_toObject(return scope void* p);
Given a pointer: If it is an Object, return that Object. If it is an interface, return the Object implementing the interface. If it is null, return null. Else, undefined crash
pure nothrow @nogc void* _d_interface_cast(void* p, ClassInfo c);
Attempts to cast interface Object o to class c. Returns o if successful, null if not.
pure nothrow @nogc void* _d_dynamic_cast(Object o, ClassInfo c);
Dynamic cast from a class object o to class or interface c, where c is a subtype of o.
Parameters:
Object o instance of class
ClassInfo c a subclass of o
Returns:
null if o is null or c is not a subclass of o. Otherwise, return o.
pure nothrow @nogc void* _d_class_cast(Object o, ClassInfo c);
Dynamic cast from a class object o to class c, where c is a subclass of o.
Parameters:
Object o instance of class
ClassInfo c a subclass of o
Returns:
null if o is null or c is not a subclass of o. Otherwise, return o.
pure nothrow @nogc void* _d_paint_cast(Object o, ClassInfo c);
Dynamic cast o to final class c only one level down
Parameters:
Object o object that is instance of a class
ClassInfo c class to cast it to
Returns:
o if it succeeds, null if it fails