Boost logo

Boost :

From: Russell Hind (rhind_at_[hidden])
Date: 2004-01-09 08:04:50


I have been playing about briefly attempting to use some of boost-1.30.2
with Borlands' new compiler bccx 6.00 (__BORLANDC__ == 0x600). As some
may know, this is an EDG based compiler (I think EDG 3.01) using
DinkumWare for the STL (and possibly the RTL too).

I have attached a new borland.hpp config header. Basically the only
workaround I've needed so far has been BOOST_NO_VOID_RETURNS otherwise
function fails to work with void. This header would probably be best
re-structured by someone as I've basically #def'd out all the current
work-arounds and added just the new one at the bottom.

The other places I've found work-arounds need is because code only
checks against __BORLANDC__ so workarounds are being introduced which
aren't necessary for the new compiler. I haven't done this by find and
replace, more by when errors have shown. I have changed code such as

#if defined(__BORLANDC__)

to

#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600). This places I have
done this are:

type_traits/is_const.hpp line 39
type_traits/is_pointer.hpp line 72 (added before && !defined(__COMO__)
type_traits/is_reference.hpp line 36
type_traits/is_volatile.hpp line 36
type_traits/remove_reference.hpp line 26

I have also had to change config/stdlib/dinkumware.hpp line 28 from

# if defined(_MSC_VER) && (_MSC_VER < 1300)

to

# if defined(_MSC_VER) && (_MSC_VER < 1300) && !defined(__BORLANDC__)

as the new compiler defines _MSC_VER (as 1200) but the work-arounds
aren't needed for the new compiler.

I have only done some simple tests with shared_ptr, function (now works
with preferred syntax where as bcc32 5.6.4 only worked with portable
syntax) and some simple lambda expressions. I'm not sure on how to run
regression tests so this is all I've managed so far.

I'm really wondering who is able to tell whether these changes are good
and if anyone is actually trying to get bccx working with boost at the
moment (I know it has been mentioned briefly before).

Thanks

Russell

PS: I'm unsure as to why the BOOST_NO_VOID_RETURNS is needed for this
compiler as the common_edg.hpp seems to indicate that this is only
necessary for EDG versions <= 240, and Borland's is 301. Maybe I need
to define something else somewhere.




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk