$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Gennaro Prota (gennaro_prota_at_[hidden])
Date: 2004-03-21 08:29:55
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.