c++ - Boost - 使用 TLV 编码序列化字符串

标签 c++ string boost boost-serialization tlv

是否可以使用 boost 序列化带有 TLV 编码的字符串?或者我应该先编码,然后使用 boost 序列化二进制数据?如果是那么如何编码为TLV?

最佳答案

Boost 的二进制序列化存档已经使用了类似于 TLV 的东西。显然,最简单的做法是坚持使用默认的字符串序列化。

但是,您可以为自定义类型定义自定义序列化。

使用 BOOST_STRONG_TYPEDEF 您可以围绕 TLV 字符串值创建一个强大的“自定义”typedef,这样您就可以决定如何序列化字符串(例如,对于这种情况,将原始数据序列化为字节数组可能就足够了。您可以查看 boost::serialization::make_array<T>() 作为起点

关于c++ - Boost - 使用 TLV 编码序列化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24204915/

相关文章:

string - 如何在Delphi中将浮点值显示为科学参数

c++ - 编译器或 boost 库的错误?

c++ - 我应该如何在菱形模式中调用父 move 构造函数?

c++ - 如何在某些智能指针中实现深拷贝功能?

c++ - std::mem_fun 与 std::mem_fn

c++ - std::transform with lambda: 跳过一些项目

c++ - 如何将字节数组转换为 boost::multiprecision::uint128_t?

c++ - std::map 的部分反序列化

php - 如何在 PHP 中删除部分字符串?

c - 从文件或路径获取 FILE 扩展名