Я просмотрел документацию по Boost Serialization и библиотеке Cereal, но ничего конкретного не нашел. Мне интересно, можно ли проверить целостность сериализованных данных. Я не говорю об аспекте безопасности, но если по какой-либо причине сохраненный файл поврежден, загруженные данные могут быть совершенно неправильными. Поддерживается ли что-нибудь в этих библиотеках по этому аспекту? Я думал реализовать что-то подобное сам, но возникла проблема на этапе загрузки для обеих библиотек:
template<class Archive>
void load(Archive& ar) {
//checksum here??
ar >> mydata;
}
Чтобы вычислить контрольную сумму, мне нужно прочитать все данные. Однако для обеих библиотек я ничего не могу извлечь из архива, я могу просто заполнить атрибуты класса, надеясь, что все загружается без ошибок, и тогда я могу посчитать контрольную сумму. Я хотел бы рассчитать контрольную сумму, прежде чем загружать атрибуты класса. Является ли это возможным?