>380
2回目のTag2の定義でエラーになるということがポイント。
こうすることで、この名前空間におけるTag2の唯一性を検証できる。


>378
type erasureは型情報をplaceholderの外には出せない……と思う。
使うときに明示的に変換するか、マルチディスパッチするメソッドを用意する(>202)しかないんじゃない?

単に格納するだけだったらboost::shared_ptr<boost::any>の方が簡単だと思う。