Я пытаюсь следовать этому примеру http://www.boost.org/doc/libs/1_42_0/libs/serialization/doc/serialization.html#constructors, но я продолжаю получать ошибки. Следуя примеру, я получаю сообщение об ошибке при попытке доступа к частной переменной (достаточно справедливо):
bs.cpp:10: error: ‘const int my_class::m_attribute’ is private
Но если я добавлю save_construct_data в друзья, я получу ошибку неоднозначности:
/usr/include/boost/serialization/serialization.hpp:148: error: call of overloaded ‘save_construct_data(boost::archive::text_oarchive&, const my_class*&, const boost::serialization::version_type&)’ is ambiguous
/usr/include/boost/serialization/serialization.hpp:83: note: candidates are: void boost::serialization::save_construct_data(Archive&, const T*, unsigned int) [with Archive = boost::archive::text_oarchive, T = my_class]
bs.cpp:10: note: void boost::serialization::save_construct_data(Archive&, const my_class*, unsigned int) [with Archive = boost::archive::text_oarchive]
bs.cpp:29: note: void boost::serialization::save_construct_data(Archive&, const my_class*, unsigned int) [with Archive = boost::archive::text_oarchive]
Я могу переместить определение функции в объявление друга, но это просто некрасиво.
Что мне попробовать дальше?
Спасибо, Джейен
save_construct_data
другом? - person Bart van Ingen Schenau   schedule 08.11.2010