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' |

Respuestas a la pregunta(3)

Su respuesta a la pregunta