>>324
念のため確認なんだけど
 template<> void tr_pos<Foo,Foo>(const Foo& src, const Foo& dst) { ... }
 template<> void tr_pos<Bar,Bar>(const Bar& src, const Bar& dst) { ... }
じゃなくて?