
Hi, as pointed out when BOOST_WORKAROUND was being discussed, Borland C++ (I think, up to 0x600 excluded) just emits an optional warning for division by zero. The warning is enabled by default, but can be turned off with -w-zdi or -w-8082. So I (re)propose to add a special BOOST_WORKAROUND implementation for it: #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) // Borland needs a special version, as it just emits a warning for // division by zero (and you can even disable it with -w-zdi or // -w-8082 !!). But it supports sizeof expressions in #if-s // (NOTE: that's non-conforming) // # define BOOST_WORKAROUND(symbol, test) \ (((symbol) != 0) && (1 != sizeof(char[1 + ((symbol) test)]) )) #else # define BOOST_WORKAROUND(symbol, test) \ ((symbol != 0) && (1 % (( (symbol test) ) + 1))) ... Notes: a) it should be verified whether version 0x600 has the same problem or not; given that it uses an EDG front-end it probably won't, but who knows what they could have decided in the name of backward non-conformity :) b) I suggest to use __BORLANDC__ directly, instead of the (maybe) upcoming BOOST_BORLAND_xxx, to avoid including config.hpp for such a simple header. PS: Giovanni, I asked you in private mail a while ago. What does your 'typo revealing' patch do? -- Genny.