|
Boost : |
From: John Maddock (john_at_[hidden])
Date: 2005-02-27 06:09:23
> I'm using the autoconfiguration framework under NetBSD 2.99.14 to
> generate an user.hpp file. The libs/config/test/boost_no_cwchar.ipp
> test passes successfully, so Boost ends up thinking that wcs* functions
> work. In fact, they do, but in C (defined in wchar.h).
>
> The problem is that those functions (I'm referring to wcscmp and wcslen,
> but maybe there are some others) are not (yet) defined in the std::
> namespace. (The wchar stuff is being worked on at the moment, AFAICT;
> at least, it's very recent.)
>
> So, what happens? As the BOOST_NO_CWCHAR constant is not defined, the
> build will try to use cwchar functions. And it will fail at multiple
> places. The "problem" is that the code is using std::wcscmp and
> std::wcslen because it thinks it can.
>
> I don't know which is the correct fix. Just temporally, I've changed
> the test to use the functions in the std:: namespace rather than the
> other ones, so that I get a failure and cwchar is disabled. But this
> seems suboptimal (basically because the functions do exist).
It also means that the tests don't do the right thing if
BOOST_NO_STDC_NAMESPACE needs to be defined, in fact in this case I think
that's exactly what needs to happen isn't it (it would certainly fix the
wcs* problems)? The trouble is it's not being auto-detected because we have
this nasty situation with some names in std:: and some not. Let me think
about this, not sure there's a (good) solution though...
John.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk