C ++ Boost.serialization против простой загрузки / сохранения - PullRequest
8 голосов
/ 26 марта 2012

Я - специалист по вычислительной технике, работающий с большим количеством данных моделирования, и часто мне приходится сохранять / загружать данные в / из диска. Для простых задач, таких как вектор, это обычно так же просто, как сброс набора чисел в файл, и все.

Для более сложных вещей, жизненных объектов и тому подобного у меня есть функции сохранения / загрузки. Теперь я не ученый-компьютерщик , и поэтому часто я вижу здесь терминологию на SO, которую я просто не понимаю (но мне нравится). Один из них, с которым я недавно столкнулся, - это библиотека serialization и Boost.Serialization.

Из того, что я понимаю, сериализация - это просто процесс преобразования ваших объектов во что-то, что можно сохранить / загрузить из dist или передать по сети и тому подобное. Учитывая, что самое большее мне нужно сохранять / загружать свои объекты на / с диска, есть ли какая-то причина, по которой мне следует переключаться с простых функций загрузки / сохранения на Boost.Serialization? Что Boost.Serialization даст мне помимо того, что я уже делаю?

1 Ответ

10 голосов
/ 26 марта 2012

Эта библиотека учитывает многие детали, которые могут быть не очень очевидными с чисто «аппликативной» точки зрения.

Например, переносимость данных WRT с большим / малым порядковым номером, время жизни указанных данных, структурированные контейнеры, управление версиями, неинтрузивные расширения и more . Более того, он правильно обрабатывает взаимодействие с другими std или boost инфраструктурой и диктует способ структурирования кода, который вознаградит вас более простым сопровождением кода. Вы найдете готовые к использованию сериализаторы для многих контейнеров (все std и boost?).

И подумайте, если вам нужно поделиться своими данными с кем-то другим, есть вероятность, что ссылка на опубликованную, поддерживаемую и отлаженную схему сделает вещи намного проще.

...