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;
}
我想写一个 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;
}