How to get the implementer of an interface?
Daniel Keep
daniel.keep.lists at gmail.com
Thu Jan 22 00:25:38 PST 2009
Qian Xu wrote:
> Hello All,
>
> how to get the implementer of an interface?
>
> Here is an example:
> -------------------------------------------------------------
> interface intf_1 {}
> class c_1 : intf_1 {}
> class c_2 : c_1 {}
>
> c_1 aaa = new c_1;
> c_2 bbb = new c_2;
> auto list = [cast(intf_1)(bbb), cast(intf_1)(aaa)];
> foreach (intf_1 i; list)
> {
> print_intf_implementor(i);
> // bbb should return "c_2"
> // aaa should return "c_1"
> }
> -------------------------------------------------------------
>
>
> --Qian
I don't think you can. i.classinfo returns intf_1's ClassInfo. Also,
the only two bits of hidden information on an object are the monitor
object and the vtable, so I don't know that you could use those, either.
Of course, I could be wrong.
-- Daniel
More information about the Digitalmars-d-learn
mailing list