Autoconfiguration problem with wcs* functions?

Hi all, 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). Any comments on how this should be handled? Thanks, -- Julio M. Merino Vidal <jmmv84@gmail.com> http://www.livejournal.com/users/jmmv/ The NetBSD Project - http://www.NetBSD.org/

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.
participants (2)
-
John Maddock
-
Julio M. Merino Vidal