gpt4 book ai didi

c++ - 在 C+ +'s Eigen library, how do I solve: invalid use of incomplete type ‘const class Eigen::MatrixSquareRootReturnValue>’

转载 作者:行者123 更新时间:2023-11-27 23:45:14 31 4
gpt4 key购买 nike

我正在使用 C++ 中的 Eigen 库来获取浮点方阵的平方根:

  MatrixXf gPrime(QUAD_EKF_NUM_STATES, QUAD_EKF_NUM_STATES);
gPrime.setIdentity();

auto sqrtG = gPrime.sqrt();

编译时出现如下错误:

.../src/QuadEstimatorEKF.cpp:255:31: error: invalid use of incomplete type ‘const class Eigen::MatrixSquareRootReturnValue<Eigen::Matrix<float, -1, -1> >’
auto sqrtG = gPrime.sqrt()
^
In file included from /.../lib/Eigen/Core:346,
from /.../lib/Eigen/Dense:1,
from /.../src/QuadEstimatorEKF.h:11,
from /.../src/QuadEstimatorEKF.cpp:2:
/.../lib/Eigen/src/Core/util/ForwardDeclarations.h:286:34: note: declaration of ‘class Eigen::MatrixSquareRootReturnValue<Eigen::Matrix<float, -1, -1> >’
template<typename Derived> class MatrixSquareRootReturnValue;
^~~~~~~~~~~~~~~~~~~~~~~~~~~

“不完整类型”是什么意思,我应该如何修复它?

我正在使用 C++ 11 和 g++ 8.1.1。

最佳答案

正在搜索 documentation of that function表明它是 Eigen-unsupported 的一部分并且(在顶部)

To use this module, add
#include <unsupported/Eigen/MatrixFunctions>
at the start of your source file.

invalid use of incomplete type

表示编译器只找到声明,但在使用时需要定义。

关于c++ - 在 C+ +'s Eigen library, how do I solve: invalid use of incomplete type ‘const class Eigen::MatrixSquareRootReturnValue<Eigen::Matrix<float, -1, -1>>’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51256009/

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