2

シリアルを使用してタイプのsparsepp をシリアライズおよびデシリアライズしようとしています。spp::sparse_hash_mapspp::sparse_hash_map<const std::vector<uint32_t>, uint32_t>

ここconstでキーを使用する理由に関する関連する質問を参照してください。

ただし、次のコードのコンパイルは失敗します。

spp::sparse_hash_map<const std::vector<uint32_t>, uint32_t> my_map;

std::ifstream file(path, std::ios::binary); 
cereal::BinaryInputArchive input(file); 
input(my_map);

キーの型から const を削除すると、次のようにコンパイルされます。

spp::sparse_hash_map<std::vector<uint32_t>, uint32_t> my_map;

std::ifstream file(path, std::ios::binary); 
cereal::BinaryInputArchive input(file); 
input(my_map);

コンパイラの出力:

error: no matching function for call to ‘cereal::BinaryInputArchive::processImpl(const std::vector<unsigned int>&)’

コンパイラ: clang バージョン 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

シリアルを使用してこのタイプを非シリアル化する方法はありますか? 私は何が欠けていますか?

4

0 に答える 0