まったく関係ない話だが、
マルチバイト文字を操作する場合、対応するイテレータ
( Readable ( Forward or Bidirectional ) Traversal Iterator)
を最初に作成しておくと楽。
特に MS系コンパイラのマルチバイト文字列を扱う関数なんかは、
1文字を int で要求することが多いので、dereference で int を返すようなモノを
作成しておくと、後々便利なことも多い。