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