Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-01-14 02:46:16


Fran?ois Dumont wrote:

> I build the boost (latest CVS) ) using MSVC6 SP5, STLport 5.0 beta,
> February 2003 SDK under Win XP SP2.
>
> I am using boost to check STLport as I am a contributor to this
> library.
> I setup STLport and boost (stlport.hpp) so that all C symbols are imported
> within std but boost do not enfore this injection (BOOST_NO_STDC_NAMESPACE
> is undefined). This way I know that STLport do import correctly all C
> symbols used by boost. In this case C symbols calls have to be fully
> qualified as VC6 has ambiguity trouble as soon as you have a using
> namespace std directive.

So, to summarize:
1. MSVC headers define tolower in global namespace; no header defines
it in std::
2. STLport imports them to std
3. In the context of

   namespace boost { namespace program_options {
 using namespace std;

        void foo() ( c = tolower(c); }
   } }

MSVC gives ambiguity.

Did I understand you right?

Then STLport's behaviour allows std::tolower to work on MSVC, but breaks
plain 'tolower'. What is the motivation for that?

(Side remark: I think that moving all C functions to std:: created more
problems than benefits).

- Volodya


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