Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сериализация с помощью boost

69K
30 марта 2011 года
werolik
1 / / 30.03.2011
Здравствуйте.

У меня возникла проблема с сериализацией даных boost-ом.
Ситуация такая: есть набор класов, которые наследуются от абстрактного базового класа IOperation. Обьекты содержатся в памяти через указатели на базовый клас.
Для правильной сериализации необходимо зарегистрировать производные типы, чтобы boost знал идентификаторы и мог использовать RTTI в процессе сериализации.
Вот пример из мого кода (fout - std :: ofstream):
 
Код:
boost::archive::binary_oarchive ar(fout);
ar.register_type<MsgBoxOperation>();

Проблема в том, что при попытке регистрации любого типа, который наследует IOperation, я получаю ошибку (пользуюсь MS Visual Studio 2005):

error C2248: 'boost::scoped_ptr<T>::scoped_ptr' : cannot access private member declared in class 'boost::scoped_ptr<T>' e:\libraries\boost\1_43\include\boost\archive\basic_binary_oprimitive.hpp 141

Я в коде использую только boost::shared_ptr.
Может кто подскажет в чем проблема (ошыбка возникает независимо от содержымого производного класа).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог