[reSIProcate] Compile bug whit g++-4.2.3

Johannes Dohmen johannes.dohmen at web.de
Mon Jan 14 08:02:45 CST 2008


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



More information about the resiprocate-devel mailing list