我正在尝试为我的代码实现一个简单的序列化/反序列化方法,以便能够使用 MPI 通过网络传递对象。在一个理想的世界里,我会使用它Boost.Serialization
,Boost.MPI
但它们没有安装在我可以访问的一些集群上,所以我正在考虑自己做这个。
我的策略是将每个对象序列化为一个对象,然后通过using作为数据类型std::stringstream
发送消息。在这种情况下,我将作为指针和消息的大小传递。MPI_Send
MPI_CHAR
std::stringstream::str()::c_str()
std::streaingstream::str()::size()*sizeof(char)
我已经想出了如何将所有内容序列化为一个std::stringstream
对象。我的反序列化方法还需要一个std::stringstream
对象并将所有内容反序列化。这很好用,除了我不知道如何从 s 数组创建std::stringstream
对象char
并避免从数组到流中的额外副本。char
我应该将我的反序列化方法更改为直接使用 using数组memcpy
吗?