对于一般信息,我使用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,int)都会出现编译器错误:
./inc/flow_field_matrix_free_interface_impl.h:697:1:_
./inc/boost_ const _Matx.h:38:15:实例化自‘boost::numeric::ublas::index_triple,boost::numeric::ublas::unbounded_array’类型的非const引用::()(int,int)与类型=double‘boost::numeric::ublas::index_triple,boost::numeric::ublas::unbounded_array,boost::numeric::ublas::unbounded_array >>&从rvalue类型‘boost::numeric::ublas::indexed_iterator,boost::numeric::ublas::unbounded_array,boost::numeric::ublas::unbounded_array > >,std::random_access_iterator_tag>::reference {aka boost::numeric::ublas::index_triple,boost::numeric::ublas::unbounded_array,/usr/include/c++/4.6/bits/stl_tempbuf.h:232:5:错误:在传递_ForwardIterator = boost::numeric::ublas::index_triple,boost::numeric::ublas::unbounded_array,boost::numeric::ublas::unbounded_array >> >*的‘boost::numeric::ublas::unbounded_array _ForwardIterator,_Tp&]的参数3时,_Tp = boost::numeric::ublas::index_triple,boost::numeric::ublas::unbounded_array,boost::numeric::ublas::unbounded_array >>‘
我希望有人能帮我。
发布于 2012-03-04 13:33:43
好的,我想我发现了问题:
http://boost.2283326.n4.nabble.com/example-usage-of-coordinate-matrix-fails-on-Ubuntu-11-04-amd-64-td3580407.html
我刚刚测试了最新的boost版本,这个版本也不编译。
https://stackoverflow.com/questions/9542762
复制相似问题