надо список, который способен хранить элементы типа int и типа самого списка. А так же сохранять своё содержимое в файл.В идеальном мире, к которому наш, к сожалению, не относится, это могло бы выглядеть так:
mylist<int> a;
mylist<mylist<int>> b;
...
b.add(a);
...
a.save();
b.save();
Как это всё должно выглядеть на С++, и выглядеть ИЗЯЩНО?
никаких switch(node_type){case type_int: ...} и
void *node;
*(int *)node плиз...
Нашел решение, можете не отвечать...
void Set<T>::save(FILE *f)
{
int k = (int)m_data.size();
if (fwrite(&k, 1, 4, f) != 4) throw "Ошибка записи в файл";
for (std::list<T>::const_iterator i = m_data.begin() ; i != m_data.end(); i++)
save(f, *i);
}
template<class T>
void Set<T>::save(FILE *f,const int &item)
{
if (fwrite(&item, 1, 4, f) != 4) throw "Ошибка записи в файл";
}
template<class T>
void Set<T>::save(FILE *f,const Set<int> &item)
{
item.save(f);
}
ИМХО изящнее некуда
scf пишет:
> надо список, который способен хранить элементы типа int и типа самого
> списка. А так же сохранять своё содержимое в файл.В идеальном мире, к
> которому наш, к сожалению, не относится, это могло бы выглядеть так:
> mylist<int> a;
> mylist<mylist<int>> b;
> ...
> b.add(a);
> ...
> a.save();
> b.save();
> Как это всё должно выглядеть на С++, и выглядеть ИЗЯЩНО?
> никаких switch(node_type){case type_int: ...} и
> void *node;
> *(int *)node плиз...
>
Советую посмотреть boost::serialization
Posted via RSDN NNTP Server 1.9
scf пишет:
> Здравствуйте, achmed, Вы писали:
>
> A>Советую посмотреть boost::serialization
>
> Ну все пишут про этот boost
> А он действительно стоит того, чтобы тратить время на его изучение?
>
Если собираешься прфессионально писать на C++ то стоит,
а если не собираешься, то хотя бы для общего роазвития можно
посмотреть.
Posted via RSDN NNTP Server 1.9