gpt4 book ai didi

c++ - 将类型 MatrixXd 转发到 VectorXd?

转载 作者:搜寻专家 更新时间:2023-10-31 02:24:42 27 4
gpt4 key购买 nike

也许有人知道,Eigen中是否可以转发声明类型MatrixXd & VectorXd

编译时出现如下错误:

/usr/include/eigen3/Eigen/src/Core/Matrix.h:372:34: 错误:冲突声明 'typedef class Eigen::Matrix Eigen::MatrixXd'

typedef Matrix Matrix##SizeSuffix##TypeSuffix;

SIMP.h

#ifndef SIMP_H
#define SIMP_H


namespace Eigen
{
class MatrixXd;
class VectorXd;
}

class SIMP {
public:
SIMP(Eigen::MatrixXd * gsm, Eigen::VectorXd * displ);
SIMP ( const SIMP& other ) = delete;
~SIMP(){}
SIMP& operator= ( const SIMP& other ) = delete;
bool operator== ( const SIMP& other ) = delete;


private:
Eigen::MatrixXd * m_gsm;
Eigen::VectorXd * m_displ;

};

#endif // SIMP_H

SIMP.cpp

#include "SIMP.h"
#include <Eigen/Core>
SIMP::SIMP( Eigen::MatrixXd * gsm, Eigen::VectorXd * displ) :
m_gsm(gsm),
m_displ(displ),
{

}

最佳答案

不,您不能“前向声明”类型别名:MatrixXdVectorXd 都不是;它们是类型别名。

您可以做的最好的事情是通过写出 typedef 语句来手动引入类型别名。这可能是个坏主意。

顺便说一句,最后一行输出非常可疑;它看起来像一个宏定义,绝对不应该出现在编译器错误中。

关于c++ - 将类型 MatrixXd 转发到 VectorXd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759912/

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