私はブーストのバイナリシリアル化を使用しています。私は、出力(oarchive)のためにシリアル化するために、ポインタのstd::list
を持っていますが、シリアライズはMSVCのダイアログでオブジェクトのserialize()関数内で失敗した:ブーストのシリアライゼーションアサーションが失敗する
Assertion failed: 0 == static_cast<int>(t) || 1 == static_cast<int>(t), file c:\program files\boost\boost_1_44\boost\archive\basic_binary_oprimitive.hpp, line 91
R6010 -abort() has been called
と、このような文字列
どういう意味ですか?
ソースが配布されているので、ここにコードを投稿することはできませんが、単純なプロジェクトでこのエラーをシミュレートしようとしました。
P.S. Windows XPではブースト1.44とMSVC2010EEを使用します。私は上の「リトライ」をクリックすると、ウィンドウのデバッガは、コードの行の矢印を示し、次をシリアライズするarchive << myList;
ライン「デバッグエラーを!」 - 私が意味をエラーがいくつかのデストラクタか何かで発生したように思えます。 オブジェクト内で変更を加えると、プロジェクト全体を再構築するときに適用されます(コンパイル前にクリーン) - ただし、コンパイルしただけでは(IDEが変更されたヘッダを含むすべてのソースが再コンパイルされることを示しています)前回のバージョン(printf()で試してみた)から実行時に変更が発生します。これは奇妙です。 時にはいくつかの重要な定義や何かを設定できますか?問題の
コードなしでは手助けができません。これを小さな再現可能な例に煮詰めてここに含めることができますか? –