質問: 実行時の.soファイルの更新時にSTLコンテナデータを転送する方法 私はその内部にいくつかのSTLコンテナを使用する.soファイルを持っています。 問題は、私が.soのバージョンXのライブアンロードに興味があり、.soのバージョンYで置き換えることですが、データを失うことはありません。データが生のメモリだけだった場合、私は切り替え中にポインタを転送することができましたが、通常のSTLコンテナを使用したいと思います。それを行う方法はありますか?含まれているデータを転送できる限り、コピーは問題ではありません。 また、古い.soをアンロードすると、静的デストラクタがアクティブになります。
回答: 1)X.soファイル(バージョン番号付き)にデータを保存し、X.soをアンロードし、Y.soをロードし、Y.soファイルにデータをロードさせます。 2)代わりにバージョン名を持っていて、両方をロードし、Y.soを使ってX.soのコンテナから直接コンテナを埋める(バージョン番号を確認してください!)、X.soをアンロードします。 コンテナを直接渡すことはお勧めしません。何らかの理由でABIが互換性がなく、うまくコンパイルされますが、実行時にクラッシュする場合があります。これにより、ABIを意図的に変更することも容易になります。