Описание тега boost-serialization
Boost.Serialization - это кроссплатформенная библиотека сериализации C++.
Boost.Serialization - это кроссплатформенная библиотека сериализации C++. Здесь мы используем термин "сериализация" для обозначения обратимой деконструкции произвольного набора структур данных C++ до последовательности байтов. Такую систему можно использовать для воссоздания эквивалентной структуры в другом программном контексте. В зависимости от контекста это может использоваться для реализации сохраняемости объекта, удаленной передачи параметров или других возможностей. В этой системе мы используем термин "архив" для обозначения конкретной обработки этого потока байтов. Это может быть файл двоичных данных, текстовых данных, XML или другой файл, созданный пользователем этой библиотеки.
Цели Boost.Serialization:
- Переносимость кода - зависит только от возможностей ANSI C++.
- Экономия кода - используйте возможности C++, такие как RTTI, шаблоны, множественное наследование и т. Д., Где это необходимо, чтобы сделать код короче и проще в использовании.
- Независимое управление версиями для каждого определения класса. То есть, когда определение класса изменилось, старые файлы все еще можно импортировать в новую версию класса.
- Сохранение и восстановление глубокого указателя. То есть, при сохранении и восстановлении указателей сохраняются и восстанавливаются указанные данные.
- Правильное восстановление указателей на общие данные.
- Сериализация контейнеров STL и других часто используемых шаблонов.
- Переносимость данных - потоки байтов, созданные на одной платформе, должны быть доступны для чтения на любой другой.
- Ортогональная спецификация сериализации классов и формата архива. То есть любой формат файла должен иметь возможность сохранять сериализацию любого произвольного набора структур данных C++ без необходимости изменять сериализацию какого-либо класса.
- Ненавязчивый. Разрешить применение сериализации к неизмененным классам. То есть не требуется, чтобы сериализуемые классы были производными от определенного базового класса или реализовывали указанные функции-члены. Это необходимо, чтобы легко разрешить применение сериализации к классам из библиотек классов, которые мы не можем или не хотим изменять.
- Интерфейс архива должен быть достаточно простым, чтобы можно было легко создавать архив нового типа.
- Интерфейс архива должен быть достаточно богатым, чтобы разрешить создание архива, который представляет сериализованные данные в виде XML в удобной форме.