delegateの不思議
void hoge(void delegate() dg){ int delegate() dd = cast(int delegate())dg; TypeInfo ti = typeid(typeof(dg)); TypeInfo tt = typeid(typeof(dd)); if (ti == tt){ printf("hoge\n"); } if (ti == typeid(int delegate())){ printf("hige\n"); } if (tt == typeid(void delegate())){ printf("huge\n"); } if (ti.tsize == tt.tsize){ printf("hage\n"); } } void main(){ hoge(printf("hoge\n")); }
hoge hige huge hage
中身が同じなら何返そうと、少なくともTypeInfoは同じなのか…
どうにかしてvoid delegate()からもとの型調べられないのかなあ。