もしかしてファイル長がunsigned longだと32bitの恐れがあるから、C++で
定義を変更したのかもな

だとしたらnewする時はどうやってpos_typeからサイズを得ればいいんだ?