gpt4 book ai didi

c++ - boost::serialization - 是否有一种可移植的方式来二进制序列化 std::wstrings?

转载 作者:太空狗 更新时间:2023-10-29 23:08:52 27 4
gpt4 key购买 nike

我想在同一台 Windows 机器上使用 boost::serialization 序列化 32 位进程和 64 位进程之间的一些数据结构。

This answer建议使用 eos::portable_iarchive,但是当我尝试这样做时,出现了 STATIC_ASSERT 故障:

// implementation only valid for narrow string
BOOST_STATIC_ASSERT(sizeof(C) == sizeof(char));

是否有其他支持 std::wstrings 的方法(除了 text_iarchive 之外我不想用于性能方面的考虑)?

最佳答案

据我所知,序列化宽字符字符串的标准方法是首先将它们编码为 UTF-8 窄字符字符串。不过,这可能比您想要的要多。

在 Boost.Serialization 示例目录中有一个可移植二进制存档的替代实现。 Boost.Serialization documentation听起来它最大的缺点是缺乏可移植浮点支持和缺乏严格的测试,所以如果你不需要可移植 float ,它可能会满足你的需求。

我不知道您是否看过其他序列化库,但有多种选择,包括 libs11nProtocol Buffers . (就个人而言,使用过 Boost.Serialization 和 Protocol Buffers,我更喜欢 Protocol Buffers。)

关于c++ - boost::serialization - 是否有一种可移植的方式来二进制序列化 std::wstrings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com