Eigen::Matrix<double,1,3> return 结构类型函数中的类型函数

Eigen::Matrix<double,1,3> return type function in a struct type function

我想写一个 struct 类型的函数,但是它是 returns eigen::matrix 类型的向量(也就是说...)

例如:

struct foo (){ double a,b,c; };  
foo FOO(){  
    typedef eigen::Matrix<double,1,3> foofoo;
    foo f;
    // .....                 // some expressions that generate some numerical values
    f.a; f.b;f.c;         // numerical values are put in here
    foofoo<<f.a, f.b,f.c; // assigned to the eigen::matrix
    return foofoo;        // attempt to return eigen::matrix type vector
}

我不确定在哪里声明 eigen::matrix 类型向量。它应该在函数内部还是在 struct 中,或者它应该是 eigen::matrix 类型的单独 struct 还是首选任何其他方式。

没有"a function of struct type"这样的东西,你的结构声明语法真的很奇怪。您似乎混淆了类型和对象。

这就是我认为您需要的,只是一个 returns 您的 eigen::Matrix 专业化实例的函数(您已通过类型别名将其命名为 foofoo):

struct foo
{
   double a, b, c;
};

using foofoo = eigen::Matrix<double, 1, 3>;

foofoo FOO()
{
   foofoo result;

   foo f;
   // ... populate members of f ...
   result << f.a, f.b, f.c;

   return result;
}