2007-03 << 2007-04 >> 2007-05

2007-04-18 (水)

*pack/unpack

C++にも,PerlやRubyにあるようなpack/unpackみたいな仕組みが欲しい.オブジェクトを保存したり,他の環境に渡したいときに,いちいちメンバをひとつずつ書き込んでいくのが面倒くさい.かといって,パディングやバイトオーダーを無視して,そのまま扱うのも危険すぎる.

	// 送信
	Packed<Object> pak;
	pak.pack(obj);
	Send(pak);

	// 受信
	Packed<Object> pak;
	Recv(pak);
	Object *obj = pak.unpack();

stringとか別のオブジェクトを含んでてもちゃんと処理してくれるとうれしいな.

これはC++のテンプレートを駆使しても使いやすいものは出来ないだろうなぁ.Javaならメンバを列挙して型を調べることは可能そうだから,出来そうだけど….