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