Я изучаю сериализации в C ++. В чем преимущество / отличие boost::serialization
по сравнению с чем-то вроде:
ifstream_obj.read(reinterpret_cast<char *>(&obj), sizeof(obj)); // read
// or
ofstream_obj.write(reinterpret_cast<char *>(&obj), sizeof(obj)); // write
// ?
и какой из них лучше использовать?
Большие преимущества Boost Serialization:
Наконец, он добавляет (а) слой (и) абстракции, которые делают вещи намного менее подверженными ошибкам. Конечно, вы могли бы сделать то же самое для предложенного подхода к сериализации без особых проблем.
Вот ответ, который делает сериализацию, которую вы предлагаете, но безопасно:
Обратите внимание, что Boost Serialization полностью знает о побитовых сериализуемых типах, и вы также можете рассказать о своих собственных:
Других решений пока нет …