我可以告诉 Boost.MPI 哪个类版本与 Boost.Serialization 一起使用吗?
我正在使用 Boost.MPI 在进程之间交换消息。每条消息都包含我的一个类,使用 Boost.Serialization 进行序列化。我还使用相同的序列化代码将该类保存到文件中。我需要通过 MPI 发送的内容小于我需要保存到文件的内容(相关成员较少)。我认为最好使用序列化库支持的类版本控制来告诉 Boost.MPI 发送该类的非默认版本,但我似乎找不到这样做的方法。你知道这是否可能吗?
I'm using Boost.MPI to exchange messages between processes. Each message carries one of my classes, serialized using Boost.Serialization. I also use the same serialization code to save that class to a file. What I need to send over MPI is smaller than what I need to save to a file (fewer relevant members). I was thinking that it would be nice to use the class versioning, supported by the Serialization library, to tell Boost.MPI to send the non-default version of the class, but I can't seem to find a way to do so. Do you know if this is possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不可能在同一二进制模块中序列化同一类型的两个不同版本。原因是使用的版本是使用
BOOST_CLASS_VERSION
构造指定的编译时常量(如果未指定,版本号默认为零)。您可以尝试的是为您的特定归档类型实现序列化成员函数的专门化:
类似地,您可以在使用拆分加载/保存序列化函数时提供重载。
It is not possible to serialize two different versions of the same type in the same binary module. The reason is that the version used is a compile time constant specified using the
BOOST_CLASS_VERSION
construct (the version number defaults to zero if not specified).What you could try is to implement specializations of the serialization member function for your type for specific archive types:
Similarily, you could provide overloads when using the split load/save serialization functions.