Finalmente parece que no se pueden hacer atajos, así que me resigno a leer el contenido de la lista e ir guardándolos uno a uno, e igualmente, volver a crear la lista e ir insertando los valores...
Código C++:
Ver originalListaEnteros lista1;
lista1.push_back(1);
lista1.push_back(3);
lista1.push_back(5);
lista1.push_back(7);
lista1.push_back(9);
lista1.push_back(11);
lista1.push_back(13);
/***********guardar en fichero*******************/
int tamLista=lista1.size();
ofstream ofs("borrar.dat", ios::out|ios::binary);
ofs.write(reinterpret_cast<char*>(&tamLista),sizeof(int));
for (auto it=lista1.begin();it!=lista1.end();++it)
{
ofs.write (reinterpret_cast<char*>(&*it),sizeof(int));
}
ofs.close();
/*********recuperar de fichero***************/
ListaEnteros lista2;
int tamLista2;
ifstream ifs("borrar.dat",ios::in|ios::binary);
ifs.read(reinterpret_cast<char*>(&tamLista2),sizeof(int));
int var=0;
for (int i=0;i<tamLista2;i++)
{
ifs.read(reinterpret_cast<char*>(&var),sizeof(int));
lista2.push_back(var);
}
ifs.close();
/*********imprimir la lista*******************/
for (auto it=lista2.begin();it!=lista2.end();it++)
{
cout<<*it<<endl;
}
return 0;
}