title: Compile Error - boost::numeric::ublas::coordinate_matrix
body: <p>For general information I use boost 1.46. There have been no changes in ublas lib since this version.</p>
  
  <p>I use <code>gcc</code> version 4.6 to compile. </p>
  
  <p>So now my problem. I have a very basic class which is supposed to fit the boost matrix class to a self defined interface. The class looks like this:</p>
  
  <pre><code>template&lt; typename TYPE &gt;
  class BoostCoordinateMatrix: public MatrixInterface&lt;TYPE&gt; ,
      public boost::numeric::ublas::coordinate_matrix&lt;TYPE&gt; {
  public:
  BoostCoordinateMatrix() :
      boost::numeric::ublas::coordinate_matrix&lt;TYPE&gt;() {
  }
  
  BoostCoordinateMatrix(int rows, int columns) :
      boost::numeric::ublas::coordinate_matrix&lt;TYPE&gt;(rows, columns) {
  }
  
  int rows() const {
      return this-&gt;size1();
  }
  
  int columns() const {
      return this-&gt;size2();
  }
  
  virtual void set(int row, int column, TYPE value) {
      (*this)(row, column) = value;
  }
  
  TYPE&amp; operator()(int i, int j) {
      return this-&gt;boost::numeric::ublas::coordinate_matrix&lt;TYPE&gt;::operator()(
              i, j).ref();
  }
  
  TYPE operator()(int i, int j) const {
      return this-&gt;boost::numeric::ublas::coordinate_matrix&lt;TYPE&gt;::operator()(
              i, j);
  }
  
  };
  </code></pre>
  
  <p>When compiling this class I get a compiler error for both operator(int i, int j):</p>
  
  <blockquote>
    <p>./inc/boost_coordinate_matrix.h:38:15:   instantiated from ‘TYPE BoostCoordinateMatrix::operator()(int, int) const [with TYPE = double]’
    ./inc/flow_field_matrix_free_interface_impl.h:697:1:   instantiated from here
    /usr/include/c++/4.6/bits/stl_tempbuf.h:257: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 > > >&amp;’ 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 {aka boost::numeric::ublas::index_triple, boost::numeric::ublas::unbounded_array, boost::numeric::ublas::unbounded_array > > >}’
    /usr/include/c++/4.6/bits/stl_tempbuf.h:232:5: error: in passing argument 3 of ‘void std::__uninitialized_construct_buf(_ForwardIterator, _ForwardIterator, _Tp&amp;) [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 > > >]’</p>
  </blockquote>
  
  <p>I hope someone can help me out.</p>