Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Boost 1.34.x の binary_wiarchive 不具合

タグ: C++ Boost
#include <fstream>
#include <boost/archive/binary_woarchive.hpp>	
#include <boost/archive/binary_wiarchive.hpp>	

class Hoge
{
	friend class boost::serialization::access;

	int n;

	template <typename Archive>
	void serialize(Archive& ar, const unsigned int ver)
	{
		ar & n;
	}
};

void write()
{
	Hoge hoge;
	std::wofstream ofs("hoge.txt", std::ios::binary);
	boost::archive::binary_woarchive oa(ofs);
	oa << const_cast<const Hoge&>(hoge);
}

void load()
{
	Hoge hoge;
	std::wifstream ifs("hoge.txt", std::ios::binary);
	boost::archive::binary_wiarchive ia(ifs); // 例外発生
	ia >> hoge;
}

int main(int argc, char** argv)
{
	write();
	load();
	return 0;
}

このコード、 Boost 1.33.1 では問題なく動作するが、 Boost 1.34 ではコメントの個所で例外が発生する。
何がいけないのかと調べてみると

Boost mailing page: [boost] [serialization] typo in basic_binary_iprimitive::load_binary

typo……('A`)
しかも1.34RCで発覚しているのに、1.34系のブランチでは修正されていない('A`)

所詮、 wchar_t の扱いなんてこんなものか……

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/44-a040bfa8
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。