ускоренная сериализация не может быть передана по ссылке на объект базового класса функции, которая сериализуется в него - PullRequest
0 голосов
/ 17 октября 2018

У меня есть функция, которая принимает ссылку на объекты базового класса.Я передаю производные объекты этой функции, чтобы заполнить их расширенной сериализацией, но не могу заставить это работать.Когда я пытаюсь использовать ссылочный тип, он падает.Когда я использую указатель, он работает внутри функции, но вне функции объект остается неизменным.

int 
load( base_class &ref, const std::string &fl )
{
     bool ret = true;

     {
          std::ifstream ifl( fl.c_str() );

          boost::archive::text_iarchive iar( ifl );
          // iar >> ref; This cores.
          base_class *ptr = &ref;
          iar >> ptr; // this works here but does not change the passed in object.
     }
}    
...