Мне нужно сериализовать класс с полями: int, указатель на int, массив, объект класса, указатель на объект класса, ссылку на объект класса, указатель на объект класса с виртуальным родителем.
Я пытался это реализовать. Мне удалось сделать для int и array. Но я не могу разобраться с указателями и ссылками
class B() {};
class Person
{
public:
int age; // work
int *ageptr = &age; // not work
std::vector<int> favoriteNumbers; //work
B b; // not work
B *bptr = &b; // not work
B &bref = b; // not work
Person();
~Person();
private:
friend class boost::serialization::access;
template <class Archive>
void serialize(Archive &ar, const unsigned int version) {
ar &BOOST_SERIALIZATION_NVP(age);
ar &BOOST_SERIALIZATION_NVP(ageptr); // error
ar &BOOST_SERIALIZATION_NVP(b); // error
ar &BOOST_SERIALIZATION_NVP(bptr); // error
ar &BOOST_SERIALIZATION_NVP(bref); // error
ar &BOOST_SERIALIZATION_NVP(favoriteNumbers);
}
};