Boost LA

mat

#include <boost/la/mat.hpp>

namespace
boost
    {
    namespace
    la
        {
        template <class T,int Rows,int Cols>
        struct
        mat
            {
            T a[Rows][Cols];
        
            template <class R>
            operator R() const
                {
                R r;
                assign(r,*this);
                return r;
                }
            };
        }
    }

This is a simple matrix type. It converts to any other matrix type of compatible size.