Boost logo

Boost :

From: Gennaro Prota (gennaro_prota_at_[hidden])
Date: 2002-09-01 06:38:27


On Sun, 1 Sep 2002 11:41:28 +0100, "John Maddock"
<jm_at_[hidden]> wrote:

[..]
>
>It's a namespace handling bug, the code that gets triggered in this case is
>(at least I think I've got this right):
>
>#if !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) &&
>defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
># define BOOST_NO_STD_LOCALE
>#endif
>
>the problem is that things like:
>
>const std::ctype<char>* pct;
>
>don't compile !!

But in my situation they compile. And, since I'm using STLport's
iostreams, I expected the macro _STLP_OWN_IOSTREAMS to be defined.

I have checked the STLport docs and it seems that the "official" macro
is _STLP_NO_OWN_IOSTREAMS (with the "no" inside), not
_STLP_OWN_IOSTREAMS. Of course one would expect that when either is
defined the other isn't, but in my case they are both undefined. I
don't know if this intentional or a problem in the STLport code.

Anyhow, considering that only _STLP_NO_OWN_IOSTREAMS is clearly
documented, isn't just that the above code from config/suffix.hpp
should be written as:

#if defined(_STLP_NO_OWN_IOSTREAMS) // <---
 && defined(_STLP_USE_NAMESPACES) &&
defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
# define BOOST_NO_STD_LOCALE
#endif

?

Genny.


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