C++03とMFCしか使えない縛りで書くならそんなにかわらん気もする
あ、でもVC++6のtemplate周りって何かバグがあったような