ich eine einfache Klasse mit einer ungeordneten Karte und einer serialize Funktion haben:steigern sagt unordered_map Serialisierung ‚serialize‘ fehlt auch mit entsprechenden enthält
#include <boost/unordered_map.hpp>
#include <boost/serialization/unordered_map.hpp>
class to_serialize {
boost::unordered_map<int, int> m_map;
public:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int) {
ar & m_map;
}
};
Jetzt versuche ich, ein ts-Objekt zu erstellen und serialisiert es:
#include <fstream>
#include <boost/archive/binary_iarchive.hpp>
#include <boost/archive/binary_oarchive.hpp>
#include "ts.cpp"
int main() {
to_serialize ts;
std::ofstream ofs("saved.bin");
{
boost::archive::binary_oarchive oa(ofs);
oa << ts;
}
ofs.close();
}
Dies nicht kompilieren, mit:
boost/serialization/access.hpp:116:9: error: 'class boost::unordered::unordered_map<int, int>' has no member named 'serialize'
ich verstehe nicht, was ich bin fehlt Hier? Die Boost/Serialisierung/unordered_map.hpp scheint die Serialisierungsfunktion für die ungeordnete Karte zu deklarieren und zu definieren, aber ich denke, das ist nicht genug?