启动错误,通过构建以下代码显示错误:
Testfile.cpp:27:41: error: variable ‘boost::numeric::ublas::matrix_column<boost::numeric::ublas::bounded_matrix<double, 2u, 2u> > op1’ has initialiser but incomplete type.
请考虑以下代码:
//! System includes
#include <iostream>
#include <fstream>
//! Boost includes
#include <boost/lexical_cast.hpp>
#include <boost/integer/static_min_max.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/array.hpp>
int main( )
{
namespace ublas = boost::numeric::ublas;
typedef ublas::bounded_matrix<double,2,2> MatDofDdim;
typedef ublas::bounded_vector<double,2> VecDof;
MatDofDdim op;
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
op(i,j)=i+j;
}
}
//VecDof op1;
ublas::matrix_column<MatDofDdim> op1 ( op, 1 ) ;
//VecDof op1( ublas::matrix_column<MatDofDdim>( op, 1 ));
return 0;
}
我还尝试了一种不同的方法,对"ublas::matrix_column<MatDofDdim> op1 ( op, 1 ) ;"
行进行评论,并取消注释前一行和后一行。
然后它说:
Testfile.cpp:29:48: error: redeclaration of ‘VecDof op1’
Testfile.cpp:26:9: error: ‘VecDof op1’ previously declared here
Testfile.cpp:29:54: error: invalid use of incomplete type ‘struct boost::numeric::ublas::matrix_column<boost::numeric::ublas::bounded_matrix<double, 2u, 2u> >’
/usr/include/boost/numeric/ublas/fwd.hpp:75:11: error: declaration of ‘struct boost::numeric::ublas::matrix_column<boost::numeric::ublas::bounded_matrix<double, 2u, 2u> >’
我在ubuntu
g++
使用eclipse。
答案 0 :(得分:0)
matrix_column
在<boost/numeric/ublas/matrix_proxy.hpp>
中声明
http://www.boost.org/doc/libs/1_51_0/libs/numeric/ublas/doc/matrix_proxy.htm#matrix_column