[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] TooN bug? (affects libCVD)

From: Edward Rosten
Subject: [libcvd-members] TooN bug? (affects libCVD)
Date: Thu, 24 Jul 2008 10:53:02 -0600 (MDT)

This program fails to compile on gcc 4.2.3:

#include <TooN/TooN.h>
using namespace TooN;

int main()
        Matrix<> m1(10,10);
        Matrix<3,3> m2;
        m1.slice(0,0,3,3) += m2;

Anyone got any ideas why? It works on many previous versions. I've been digging through the TooN code and it seems OK.

For what it's worth, the error is: In function 'int main()': error: no match for 'operator+=' in 'm1.TooN::Matrix<-0x00000000000000001, -0x00000000000000001, 
>::<anonymous>.TooN::DynamicMAccessor<TooN::RowMajor>::slice(0, 0, 3, 3) += m2'
/usr/local/include/TooN/linoperators.hh:842: note: candidates are: TooN::DynamicMatrix<LHAccessor>& 
TooN::operator+=(TooN::DynamicMatrix<LHAccessor>&, const TooN::FixedMatrix<Rows, Cols, RHAccessor>&) [with 
int Rows = 3, int Cols = 3, MAccessor1 = TooN::RefSkipMAccessor<TooN::RowMajor>, MAccessor2 = TooN::FixedMAccessor<3, 
3, TooN::RowMajor, TooN::Stack<9> >]

The return type of .slice() is RefSkipMatrixRM, which is a DynamicMatrix<RefSkipMAccessor<RowMajor> > . I can't see how line 842 isn't enough of a match. Any ideas?

This stops libCVD from compiling, since "calibrate.cxx" requires this feature.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]