У меня есть простой класс с неупорядоченной картой и функцией сериализации:увеличить unordered_map сериализации говорит: «сериализация» отсутствует даже при соответствующем включает
#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;
}
};
Теперь я пытаюсь создать объект TS и сериализовать его:
#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();
}
Это не может скомпилировать с:
boost/serialization/access.hpp:116:9: error: 'class boost::unordered::unordered_map<int, int>' has no member named 'serialize'
Я не понимаю, что я пропускаю Вот? Кажется, что boost/serialization/unordered_map.hpp объявляет и определяет функцию сериализации для неупорядоченной карты, но я думаю, этого недостаточно?