外部リンケージを持たない型をテンプレートに渡せるようにすればいいだけじゃん。
名前のバッティングとかいろいろ言ってるけどそんなの無名namespaceと同じ方法で解決できるし。