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