オブジェクトの外部表現を型ごとに定義できる iostream は悪くない設計だと思うんだけどなぁ。