問題タブ [cereal]
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++ - Cereal でのシリアル化と継承
プログラムで Config 構造を JSON ファイルに保存して読み取るようにしたいと考えています。
ただし、正しい JSON ファイルの生成に問題があります。おそらく問題は継承です。
JSON 出力 (正しくない):
予想される (正しい) JSON:
コード :
共通要素を持つ基本構造体
2つの特定の構造
メイン:jsonファイルへのテスト保存
c++ - C++ Cereal ライブラリで CEREAL_REGISTER_DYNAMIC_INIT を使用して正しく発行する
lib ファイルの使用に移行し、CEREAL_REGISTER_DYNAMIC_INIT を適切に使用したいと考えました。これを使用する必要があるかどうかはわかりませんが、シリアル化タイプの 1 つが別の DLL で適切に取得されていないことに気付き、これが役立つかもしれないと考えました。
accountActions.h には、ファイルの最後に次のものがあります。
accountActions.cpp には、ファイルの上部近くに次のものがあります。
mv_accountactions が完全に構成された文字列であると仮定します。その名前のライブラリまたは dll はありませんが、これら 2 つのユニットをリンクするために使用されると考えましたか? ドキュメントはまばらで、これを間違って使用している可能性があります。
私が得ているエラーはこれです:
1> c:\git\bindstone\source\game\networklayer\accountactions.cpp(13): エラー C2084: 関数 'void cereal::detail::dynamic_init_dummy_mv_accountactions(void)' には既に本体があります 1> c:\git\ bindstone\source\game\networklayer\accountactions.h(127): 注: 「dynamic_init_dummy_mv_accountactions」の以前の定義を参照してください
再確認しましたが、他の場所では mv_accountactions を使用していません...これの原因や解決方法がわかりません。CEREAL_REGISTER_DYNAMIC_INIT が必要なのか、それとも DLL に移行して誤用した場合に備えて安全に使用する方法があるのか 疑問に思っています。
アドバイスをいただければ幸いです。
ここで開かれた問題: https://github.com/USCiLab/cereal/issues/523