< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] Compile bug whit g++-4.2.3


While compiling works fine with g++-4.1 it fails with g++-4.2.3:

g++ -march=x86-64 -fPIC -D_REENTRANT -g -Wall -I.. -I../build/../contrib/ares -DOS_MAJOR_VER=2 -DOS_MINOR_VER=6 -DOS_POINT_VER=22-2-amd64 -DOS_PATCH_VER=0 -DUSE_ARES -DUSE_SSL -c -o obj.debug.Linux.x86_64/Timer.o Timer.cxx
Timer.cxx:259: error: ‘bool resip::operator>(const resip::Timer&, const resip::Timer&)’ 
should have been declared inside ‘resip’

From my understanding of c++ the code is wrong as the friend declartion of the operator is not a declaration of the function.
Adding the missing function declaration solves the bug for me. I added the 
declaration of the operator< as well, although it does (strangely) not
give a compile error.

--- Timer.hxx   (Revision 7534)
+++ Timer.hxx   (Arbeitskopie)
@@ -104,6 +104,8 @@
      friend class TuSelectorTimerQueue;
};
+bool operator<(const Timer& t1, const Timer& t2);
+bool operator>(const Timer& t1, const Timer& t2);
std::ostream& operator<<(std::ostream&, const Timer&);

}

Greetings
Johannes Dohmen