Eigen y boost :: serializar
Intenté escribir una función de serialización genérica que toma cualquier matriz densa y la serializa: algunas otras preguntas que ayudan pero no hasta el final están aquí:Pregunta 1 Pregunta 2
He intentado lo siguiente que debería funcionar:
namespace boost {
namespace serialization {
template<class Archive, typename Derived> void serialize(Archive & ar, Eigen::EigenBase<Derived> & g, const unsigned int version)
{
ar & boost::serialization::make_array(g.derived().data(), g.size());
}
}; // namespace serialization
}; // namespace boost
Cuando intento serializar unEigen::Matrix<double,4,4>
Eigen::Matrix<double,4,4> a;
boost::serialize(ar, a);
El compilador de alguna manera no puede coincidir con la plantilla de arriba? Y se dan los siguientes errores:
/usr/local/include/boost/serialization/access.hpp|118|error: 'class Eigen :: Matrix' no tiene un miembro llamado 'serialize' |