Boost logo

Boost :

From: John Maddock (jm_at_[hidden])
Date: 2003-02-05 07:02:17

> Most my porting to borland recently has involved a couple of new bugs
> introduced in BCB6. Rather than testing compiler and version
> everywhere, should I instead create some BOOST_SOME_DEFECT macros in the
> borland config file and test for those instead? If so, any suggestions
> for the macro names would be appreciated.
> The two defects are:
> The various std::isdigit, islower, isalnum etc. convenience functions
> will not compile.

All the issues you list are related:

Borland have badly set up STLport in Builder 6, basically they put C lib
functions in namespace std, and C++ library code in namespace stlport, and
then use:

namespace std{
using namespace stlport;

to import the STLport code into std. Unfortunately it doesn't work with
function declarations, one fix is to do something like:

namespace std{
using stlport::isdigit;
using stlport::abs;
using stlport::swap;
// etc etc for each broken symbol

I guess we could boilerplate this and just dump it in the config system, but
that would mean that <boost/config.hpp> would end up including just about
all the std headers for this compiler. A bit heavyweight if you just want
to use scoped_ptr or something :-(

Any other ideas?

John Maddock

Boost list run by bdawes at, gregod at, cpdaniel at, john at