Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-09-21 09:40:58

Aleksey Gurtovoy <agurtovoy_at_[hidden]> writes:

> David Abrahams writes:
>> "Aleksey Gurtovoy" <agurtovoy_at_[hidden]> writes:
>>> Boost.Python fails to build with MSVC 6.x/STLPort (see
>>> due to the following (incorrect) configuration logic in
>>> "boost/python/detail/config.hpp":
>>> // The STLport puts all of the standard 'C' library names in std (as far as the
>>> // user is concerned), but without it you need a fix if you're using MSVC or
>>> // Intel C++
>>> # if defined(BOOST_MSVC_STD_ITERATOR)
>>> # define BOOST_CSTD_
>>> # else
>>> # define BOOST_CSTD_ std
>>> # endif
>>> The issue, as explained in "boost/config/stdlib/stlport.hpp" is that:
>>> // STLport does a good job of importing names into namespace std::,
>>> // but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
>>> // workaround does not conflict with STLports:
>>> Is there a reason why we are not using BOOST_NO_STDC_NAMESPACE here?
>> I'm sorry, I don't remember the original rationale, I don't know how
> # define BOOST_CSTD_
> #else
> # define BOOST_CSTD_ std
> #endif
>> and I don't see how this affects STLPort, since
>> BOOST_MSVC_STD_ITERATOR isn't defined for STLPort... is it?
> It's defined for Dinkumware that is shipped with VC 6.x, and you seem
> to be using it as an ad-hoc test for whether the C libary functions
> are in the global namespace or not.

In the past, it wasn't defined when STLPort was used with vc6.x. I
know this because Boost.Python used to work with STLPort. I'd be
surprised if the change to that macro didn't break other code.

Dave Abrahams
Boost Consulting

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