FAQ:STL:C++ сериализация данных — различия между версиями
Материал из Весельчак У
LogRus (обсуждение | вклад) |
LogRus (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
Периодически возникает потребность, сохранить состояние класса в файл или передать по сети или наоборот зачитать/получить. Подобные задачи обычно решает сериализация, можно конечно сделать простое копирование памяти, но тут естественно возникают ряд проблем: | Периодически возникает потребность, сохранить состояние класса в файл или передать по сети или наоборот зачитать/получить. Подобные задачи обычно решает сериализация, можно конечно сделать простое копирование памяти, но тут естественно возникают ряд проблем: | ||
| − | |||
| − | |||
| − | |||
| − | |||
| + | * Выравнивание членов касса или структуры, загрузить класс в другой библиотеке, где выравнивание отключено уже не получится | ||
| + | * В гетерогенных средах порядок байт может другим: x86 и PowerPC | ||
| + | * Нельзя сохранять, что-то кроме POD структур память на которую ссылаются указатели, таким образом не скопируем. | ||
| + | * Нельзя сохранить в Humanreadable форме. | ||
| + | Собственно | ||
[[Category:FAQ]] | [[Category:FAQ]] | ||
Версия 07:40, 29 августа 2008
Периодически возникает потребность, сохранить состояние класса в файл или передать по сети или наоборот зачитать/получить. Подобные задачи обычно решает сериализация, можно конечно сделать простое копирование памяти, но тут естественно возникают ряд проблем:
- Выравнивание членов касса или структуры, загрузить класс в другой библиотеке, где выравнивание отключено уже не получится
- В гетерогенных средах порядок байт может другим: x86 и PowerPC
- Нельзя сохранять, что-то кроме POD структур память на которую ссылаются указатели, таким образом не скопируем.
- Нельзя сохранить в Humanreadable форме.
Собственно