g++ does not ignore operator keywords during preprocessing. e.g., make[2]: Entering directory `/usr/local/src/cervisia-1.0beta1/src' g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde -I/usr/lib/qt-1.45/include -I/usr/X11R6/include -O2 -fno-operator-names -fno-exceptions -fno-check-new -c toplevel.cpp In file included from /usr/lib/qt-1.45/include/qpainter.h:33, from /usr/lib/qt-1.45/include/qdrawutil.h:28, from /usr/lib/qt-1.45/include/qscrollbar.h:30, from /usr/lib/qt-1.45/include/qscrollview.h:28, from /usr/lib/qt-1.45/include/qlistview.h:37, from logdlg.h:20, from toplevel.cpp:42: /usr/lib/qt-1.45/include/qregion.h:73:182: "defined" without an identifier make[2]: *** [toplevel.o] Error 1 make[2]: Leaving directory `/usr/local/src/cervisia-1.0beta1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/cervisia-1.0beta1' make: *** [all-recursive-am] Error 2 the offending code section from qregion.h: // We also hide the xor() function if there is a #define for xor, in // case someone is using #define xor ^ to work around deficiencies in // their compiler that cause problems with some other header files. // #if !(defined(__STRICT_ANSI__) && defined(_CC_GNU_)) && !defined(_CC_EDG_) && !defined(_CC_HP_) && !defined(_CC_HP_ACC_) && !defined(_CC_USLC_) && !defined(_CC_MWERKS_) && !defined(xor) QRegion xor( const QRegion & ) const; #endif QRegion eor( const QRegion & ) const; so. looks like redhat did *not* use the shipping compiler with shipping qt1x-devel to compile anything that actually uses qt-1.45. is there another explanation?
It's fixed in qt1x-1.45-12. You will find it in rawhide.