Рассмотрим структуру для сериализации:
struct MyStruct {
int a;
std::string b;
template<class Archive>
void serialize(Archive &ar, const unsigned int)
{
ar & a & b;
}
};
Я хочу явно пометить его, используя boost::serialization::traits, как track_never
, так и object_serializable
. Я изучил черты docs, но не могу понять, как его применять, и нигде не могу найти пример. Так...
а) Какой код применяет черты к этому конкретному классу?
б) Что такое BOOST_STATIC_ASSERT()
, который проверяет, что каждый из них на месте?
c) Я предполагаю, что не могу сделать этот класс примитивным_типом, так как в типичном архивном классе нет функции-члена или шаблона, который может напрямую обрабатывать этот тип. Правильный?
Меня не волнует межплатформенная совместимость или совместимость архивов между версиями, просто быстрое чтение (и запись) и вмешательство в MyStruct
- это нормально, но было бы неплохо увидеть, как это делается в обоих направлениях, если это возможно.