ダメ mangling
i@u wrk/d/reflection> cat test.d class test { void test() {} } void test() { void test() {} } i@u wrk/d/reflection> dmd test.d test.d(4): function test conflicts with test.test at test.d(1)
どうしたもんかね…こっちはまあいいとしてもね。
i@u wrk/d/reflection> cat test.d class C_f { class C {} } class C(T) {} C!(float) c; i@u wrk/d/reflection> dmd -c test.d i@u wrk/d/reflection> nm test.o | grep _Class 0000003c D _Class_4test3C_f 00000000 D _Class_4test3C_f1C 00000000 D _Class_4test3C_f1C U _Class_6Object
なんじゃそら。もちろんリンクエラー。テンプレートは demangle できませんよどう考えても。