Hi Colin et al, On Sat, 12 May 2001 09:23:17 +0200 (CEST) Colin Bernet <bernet@kph.uni-mainz.de> wrote concerning ": [ROOT] different exceptions": > In file included from /usr/include/math.h:64, > from /usr/local/root/include/G__ci.h:268, > from /usr/local/root/include/TSystem.h:31, Colin Bernet > Tel. +49-6131/39-23192 Fax +49-6131/39-22964 > from /usr/local/root/include/TThread.h:38, > from Monitor.h:36, > from MainFrame.h:22, > from gui.cc:6: /usr/include/bits/mathcalls.h:54: > declaration of `double acos (double) throw ()' throws different exceptions > /usr/local/root/include/TMath.h:306: than previous declaration `double > acos (double)' Don't include files from /usr/include/bits directly. Even <sys/...> should be used with care. I guess you may have defined some preprocessor thing after including TThread.h, but before including bits/mathcalls.h, so that the definitions get all screwd up. Suppose you had the header myheader.h #ifdef SOME_PP_MACRO #define MY_DECL(x) (x) throw() #else #define MY_DECL(x) (x) #endif extern int my_func MY_DECL((int)); and you in one file included it as #include "myheader.h" #define SOME_PP_MACRO 1 #include "myheader.h" Then I guess you'd see the same problem. > Everything works fine on a redhat 6.1, with the same root version, so this > is probably a compiler problem. Would anybody know a trick to get around > that ? I'm not 100% positive that it's a compiler bug (Uh, long discussions there), but I think it's a user problem :-(. The work-around, I believe, is to not include <bits/mathcalls.h> but <math.h> or even <cmath> if you're on a GNU/Linux system. Yours, Christian ----------------------------------------------------------- Holm Christensen Phone: (+45) 35 35 96 91 Sankt Hansgade 23, 1. th. Office: (+45) 353 25 305 DK-2200 Copenhagen N Web: www.nbi.dk/~cholm Denmark Email: cholm@nbi.dk
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:45 MET