#c #string #boost #boost-serialization #tlv
#c #строка #повышение #повышение-сериализация #tlv
Вопрос:
Можно ли сериализовать строку с кодировкой TLV с помощью boost? Или я должен сначала закодировать, а затем просто сериализовать двоичные данные с помощью boost? Если да, то как кодировать в TLV?
Ответ №1:
Архивы двоичной сериализации Boost уже используют что-то похожее на TLV. Очевидно, что проще всего было бы просто придерживаться сериализации по умолчанию для строк.
Однако вы можете определить пользовательскую сериализацию для своих пользовательских типов.
Используя BOOST_STRONG_TYPEDEF
вы можете создать строгий «пользовательский» typedef вокруг ваших строковых значений TLV, и таким образом вы можете решить, как сериализовать строки (например, для этой ситуации может быть достаточно сериализовать необработанные данные в виде массива байтов. Вы можете взглянуть boost::serialization::make_array<T>()
на отправную точку