現在自分の作っているゲームのセーブロードのためシリアライザを作っています。
boost::Serializationを使うことも考えたのですが、あそこまで大掛かりなものを必要としないため自作しています。
今のところ、intやdouble等のPOD型(?)をシリアライズ、デシリアライズするところまで来ました。
しかし、配列をシリアライズしようとするところでいい方法が思いつかず詰まっております。
template<typename T>
void load(iostream stream, T &obj){
stream->read((char*)(&obj), sizeof(obj));
}
template<typename T>
void load(iostream stream, T *obj){
stream->read((char*)(obj), sizeof(*obj));
}
そこで配列の場合は別に、引数にサイズをとるような関数を作ればいいのでは?と思ったのですが、二次元配列などだとお手上げになってしまいそうです。
何か良い方法はないでしょうか?