【发布时间】:2016-10-06 08:00:21
【问题描述】:
如何序列化arma::Col?下面是 MWE 和错误输出。
MWE:
#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <iostream>
#include "armadillo"
namespace mpi = boost::mpi;
struct S
{
int i;
arma::Col<double>::fixed<3> cvector;
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive& ar, const unsigned int version)
{
ar& i;
ar& cvector;
}
};
int main()
{
mpi::environment env;
mpi::communicator world;
S s;
if (world.rank() == 0)
{
s.cvector[0] = 2;
s.cvector[1] = 2;
world.send(1, 0, s);
}
else
{
world.recv(0, 0, s);
std::cout << s.cvector[0] << std::endl;
std::cout << s.cvector[1] << std::endl;
}
return 0;
}
错误输出(跳过“需要”的东西):
error: ‘class arma::Col<double>::fixed<3ull>’ has no member named ‘serialize’; did you mean ‘set_size’?
t.serialize(ar, file_version);
编辑: This 帖子似乎与我的问题有关,不幸的是它没有得到答复。
【问题讨论】:
标签: c++ c++14 armadillo boost-serialization