$ cat foo.cpp #include #include int main () { using namespace boost::numeric::ublas; coordinate_matrix m (3, 3, 3 * 3); for (unsigned i = 0; i < m.size1 (); ++ i) for (unsigned j = 0; j < m.size2 (); ++ j) m (i, j) = 3 * i + j; std::cout << m << std::endl; } $ g++ -I /usr/local/boost_1_46_1/boost/ foo.cpp -o foo In file included from /usr/include/c++/4.5/bits/stl_algo.h:63:0, from /usr/include/c++/4.5/algorithm:63, from /usr/include/boost/utility/swap.hpp:24, from /usr/include/boost/swap.hpp:10, from /usr/include/boost/array.hpp:37, from /usr/include/boost/serialization/array.hpp:26, from /usr/include/boost/numeric/ublas/storage_sparse.hpp:19, from /usr/include/boost/numeric/ublas/vector_sparse.hpp:16, from /usr/include/boost/numeric/ublas/matrix_sparse.hpp:16, from foo.cpp:1: /usr/include/c++/4.5/bits/stl_tempbuf.h: In constructor ‘std::_Temporary_buffer<_ForwardIterator, _Tp>::_Temporary_buffer(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = boost::numeric::ublas::indexed_iterator, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > >, std::random_access_iterator_tag>, _Tp = boost::numeric::ublas::index_triple, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > > >]’: /usr/include/c++/4.5/bits/stl_algo.h:3084:17: instantiated from ‘void std::inplace_merge(_BIter, _BIter, _BIter) [with _BIter = boost::numeric::ublas::indexed_iterator, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > >, std::random_access_iterator_tag>]’ /usr/include/boost/numeric/ublas/matrix_sparse.hpp:4387:17: instantiated from ‘void boost::numeric::ublas::coordinate_matrix::sort() const [with T = double, L = boost::numeric::ublas::basic_row_major<>, long unsigned int IB = 0ul, IA = boost::numeric::ublas::unbounded_array, TA = boost::numeric::ublas::unbounded_array >]’ /usr/include/boost/numeric/ublas/matrix_sparse.hpp:4174:13: instantiated from ‘const T* boost::numeric::ublas::coordinate_matrix::find_element(boost::numeric::ublas::coordinate_matrix::size_type, boost::numeric::ublas::coordinate_matrix::size_type) const [with T = double, L = boost::numeric::ublas::basic_row_major<>, long unsigned int IB = 0ul, IA = boost::numeric::ublas::unbounded_array, TA = boost::numeric::ublas::unbounded_array >, const T* = const double*, boost::numeric::ublas::coordinate_matrix::size_type = long unsigned int]’ /usr/include/boost/numeric/ublas/matrix_sparse.hpp:4192:49: instantiated from ‘const T& boost::numeric::ublas::coordinate_matrix::operator()(boost::numeric::ublas::coordinate_matrix::size_type, boost::numeric::ublas::coordinate_matrix::size_type) const [with T = double, L = boost::numeric::ublas::basic_row_major<>, long unsigned int IB = 0ul, IA = boost::numeric::ublas::unbounded_array, TA = boost::numeric::ublas::unbounded_array >, const T& = const double&, boost::numeric::ublas::coordinate_matrix::size_type = long unsigned int]’ /usr/include/boost/numeric/ublas/io.hpp:96:17: instantiated from ‘std::basic_ostream<_CharT, _Traits>& boost::numeric::ublas::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::numeric::ublas::matrix_expression&) [with E = char, T = std::char_traits, ME = boost::numeric::ublas::coordinate_matrix]’ foo.cpp:10:18: instantiated from here /usr/include/c++/4.5/bits/stl_tempbuf.h:192:6: error: invalid initialization of non-const reference of type ‘boost::numeric::ublas::index_triple, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > > >&’ from an rvalue of type ‘boost::numeric::ublas::indexed_iterator, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > >, std::random_access_iterator_tag>::reference’ /usr/include/c++/4.5/bits/stl_uninitialized.h:223:5: error: in passing argument 3 of ‘void std::__uninitialized_construct_range(_ForwardIterator, _ForwardIterator, _Tp&) [with _ForwardIterator = boost::numeric::ublas::index_triple, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > > >*, _Tp = boost::numeric::ublas::index_triple, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > > >]’