gpt4 book ai didi

c++ - 是否可以使用带有模板参数的 Eigen block 表达式作为左值?

转载 作者:行者123 更新时间:2023-11-28 01:44:43 25 4
gpt4 key购买 nike

我在使用 Eigen C++ 库的函数时遇到问题。这是他们的一个示例的模板化版本,但我似乎无法在 xcode 中使用它。

template <typename Scalar>
void foo(){
Eigen::Matrix<Scalar, 2, 2> m = Eigen::Matrix<Scalar, 2, 2>::Identity();
Eigen::Matrix<Scalar, 4, 4> a = Eigen::Matrix<Scalar, 4, 4>::Constant(0.6);
a.topLeftCorner<2,2>() = m; //Expected expression!
std::cout << "result:" << std::endl << a << std::endl << std::endl;
}

由于“预期表达式”错误,此代码无法编译。我实际上并没有在任何地方调用该函数,如果我不对其进行模板化并改用 double 或 float,它就可以正常工作。有什么理由不适用于模板版本吗?

最佳答案

你需要写

a.template topLeftCorner<2,2>() = m;

这里有解释:http://eigen.tuxfamily.org/dox-devel/TopicTemplateKeyword.html

关于c++ - 是否可以使用带有模板参数的 Eigen block 表达式作为左值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com