编译错误-boost::numeric::ublas::coordinate_matrix

Compile Error - boost::numeric::ublas::coordinate_matrix

本文关键字:coordinate matrix ublas numeric 错误 -boost 编译      更新时间:2023-10-16

对于一般信息,我使用boost 1.46。自此版本以来,ublas库中没有任何更改。

我使用gcc版本4.6进行编译。

所以现在是我的问题。我有一个非常基本的类,它应该将boost矩阵类适合于自定义接口。类看起来是这样的:

template< typename TYPE >
class BoostCoordinateMatrix: public MatrixInterface<TYPE> ,
    public boost::numeric::ublas::coordinate_matrix<TYPE> {
public:
BoostCoordinateMatrix() :
    boost::numeric::ublas::coordinate_matrix<TYPE>() {
}
BoostCoordinateMatrix(int rows, int columns) :
    boost::numeric::ublas::coordinate_matrix<TYPE>(rows, columns) {
}
int rows() const {
    return this->size1();
}
int columns() const {
    return this->size2();
}
virtual void set(int row, int column, TYPE value) {
    (*this)(row, column) = value;
}
TYPE& operator()(int i, int j) {
    return this->boost::numeric::ublas::coordinate_matrix<TYPE>::operator()(
            i, j).ref();
}
TYPE operator()(int i, int j) const {
    return this->boost::numeric::ublas::coordinate_matrix<TYPE>::operator()(
            i, j);
}
};

当编译这个类时,我得到了两个运算符(int I,int j)的编译器错误:

/inc/boost_coordinate_matrix.h:38:15:从"TYPE BoostCoordinate_matrix::operator()(int,int)const[类型=双]"实例化./inc/flow_field_matrix_free_interface_impl.h:697:1:从此处实例化/usr/include/c++/4.6/bits/sstl_tempbuf.h:257:6:错误:类型为"boost::numeric::ublas::index_trible,boost::numeric:,ublas:,unboundd_array,boost::numeric:,ublas:unboundd_arrange>>&"的非常量引用初始化无效从类型为"boost::numeric::ublas::indexed_editor,boost::numeric:,ublas:,unboundd_array,boost:numeric::ublas::unboundd_array>>,std::random_access_iterator_tag>::reference{aka boost:,numeric:/usr/include/c++/4.6/bits/sstl_tempbuf.h:232:5:错误:在传递'void std::__uninitialized_construct_buf(_ForwardIterator,_ForwardIt erator,_Tp&)的参数3时[with_ForwardIterator=boost::numeric::ublas::index_triple,boost::numeric:,ublas:,unboundd_array,boost::numerics:,ublas:,unbounded_array>>>*,_Tp=boost:,numeric:

我希望有人能帮我。

好的,我想我发现了问题:

http://boost.2283326.n4.nabble.com/example-usage-of-coordinate-matrix-fails-on-Ubuntu-11-04-amd-64-td3580407.html

我刚刚测试了最新的boost版本,这个版本也没有编译。