問題タブ [boost-serialization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 保護されたデータへのシリアル化アクセスを強化する
保護されたメンバーを使用してクラスをシリアル化しようとすると、「クラスNetElementで宣言された保護されたメンバーにアクセスできません」というエラーが発生します。クラス定義の外に1つのシリアル化関数が欲しいという考えです。私は何が間違っているのですか?
よろしく、マイティドドール
これがコードです...
c++ - Boostシリアル化とiostreamを接続して、オブジェクトを文字列にシリアル化およびgzip圧縮する方法は?
私はBoostシリアル化ライブラリを使用してきましたが、これは実際には非常に優れており、次のように、シリアル化可能なオブジェクトを文字列に保存するための単純なラッパーを作成できます。
問題は、シリアル化されたデータも圧縮する必要があることを発見したので、boost::iostreamsのフィルターを使用してそれを行うことを検討しています。私はファイルでそれをうまく行う方法を考え出しました:
しかし、圧縮された文字列に正しく保存する方法を理解することはできません。問題は、フィルターのチェーンをフラッシュしていないことですが、ポップと同期を試しましたが、何も機能しないようです。これが私の壊れたコードです:
その結果、一部のデータがストリームバッファのどこかにスタックし、43K程度であることがわかっている場合、圧縮データの完全なブロック(16Kまたは32K)が常にいくつかあります。私のsaveGZFileメソッド。どうやらofstreamを接続すると、適切に閉じてフラッシュしますが、ostringstreamを接続してもそうではありません。
何か助けはありますか?(これは私の最初のstackoverflowの質問です—助けてください、みんな、あなたは私の唯一の希望です!)
c++ - ネストされた順序付けられていないマップをシリアル化する
次のような宣言を持つ変数があります
これをファイルにシリアル化し、後で逆シリアル化する必要があります。ネストされたループを実行する必要がありますか、それともboost :: serialisationを使用して超クールなことを実行できますか?ネストされた宣言に私を向ける助けをいただければ幸いです。
前もって感謝します!
c++ - 共有/弱いポインターをシリアル化する方法は?
QSharedPointers と QWeakPointers に接続されたオブジェクトの複雑なネットワークがあります。Boost.Serialization でそれらを保存/ロードする簡単な方法はありますか? これまでのところ、私はこれを持っています:
共有ポインターは常に生のポインターから構築されるため、これは機能しません。そのため、すべての共有ポインターは参照カウントが 1 であると見なします。また、弱いポインターをすぐに解放します。
いくつかの努力で、クラスを変換して使用することができますboost::shared_ptr
and boost::weak_ptr
. それは役に立ちますか?
c++ - boost::serialization を使用するときにファイル バッファをフラッシュする方法は?
USB ドライブにファイルを保存していますが、USB ドライブが適切に取り外されない場合に破損しないように、ファイルが完全に書き込まれていることを確認する必要があります。さて、私はいくつかの調査を行いましたが、これは FlushFileBuffers Win32 関数を呼び出すことで可能であるようです。しかし問題は、boost::serialization を使用して保存しているため、実際のファイル HANDLE にアクセスできないことです。ファイルをフラッシュする適切な方法は何ですか?ありがとう!
c++ - XMLアーカイブ内のタグ名のboost::serializationチェックを行わないのはなぜですか?
XMLアーカイブでboost::serializationを使い始めています。データを生成して読み取ることはできますが、XMLを手動で変更し、2つのタグを交換すると、「失敗しません」(つまり、正常に進行します)。
これが私が見ているものを示す小さな、自己完結した例です:
これにより、XMLが標準出力に書き込まれます。これには次のものが含まれます。
ここで、main関数のすべてのコードをリーダーに置き換えます。
これは、前の出力(出力「XXX0.0.1」)をフィードしたときに期待どおりに機能します。ただし、「producer」と「producer_version」の2行の順序を変更したXMLをフィードすると、引き続き実行され、「0.0.1XXX」が出力されます。
したがって、タグに期待される名前がないことを認識できず、続行します。ドキュメントxml_archive_parsing_error
に示されているように、例外がスローされると予想していました。
ここの誰かがそれを経験したことがありますか?私が間違っていることは何ですか?
c++ - パイプを介したシリアル化
私はC++でいくつかのシミュレーションプログラムを作成し、それらの出力/入力をパイプで接続したいと考えています(おそらく、C ++ストリームを使用するのが最善の解決策です)。
このために、いくつかのオブジェクトをシリアル化したいと思います(たとえば、シミュレーションの出力/入力はテンソルと行列です)。この問題をどのように処理する必要がありますか?私はグーグルでシリアル化とパイプをしばらく探しましたが、これについては実際には何も見つかりませんでした...
出発点に関するヒントはありますか?たとえば、ブースト/シリアル化を使用してオブジェクトをパイプと交換するのは簡単ですか?一般に、シリアル化がテキストベースの場合(丸め誤差を回避するために、10進数ではなく16進値を送信します)、出力ストリームをテキストファイルにリダイレクトしたり、分割したりすることができれば幸いです。おそらく私のシミュレーションを別のプログラムで書いてください...
すべての答えのためのThx!
c++ - boost.serializationとレイジー初期化
ディレクトリツリーをシリアル化する必要があります。私はこのタイプに問題はありません:
しかし、シリアル化のために、私が他のタイプを必要とするコンテンツを含むディレクトリツリー:
シリアル化の瞬間に「std::pair」タイプのオブジェクトを初期化するにはどうすればよいですか?つまり、ファイルの一部を読み取り、crc32の合計を計算します。
上
boost - ブースト シリアライゼーション ライブラリ使用時のコンパイル エラー
私は長い間このエラーに苦労してきました。以下は私のコードスニペットです。
以下は、私が得るコンパイルエラーです。
私を助けてください。
c++ - 可変メンバーによるboost::シリアル化
boost :: serializationを使用して、可変メンバーにキャッシュされた派生値を含むオブジェクトをシリアル化する「最良の」方法は何ですか?
メンテナンス上の理由から、serialize()を別々のsave()メソッドとload()メソッドに分割することは避けたいと思います。
シリアル化の1つの次善の実装:
これは逆シリアル化の場合を処理しますが、シリアル化の場合、キャッシュされた値は強制終了され、再計算する必要があります。
この場合のベストプラクティスは何ですか?