Boost Testing :
From: Jim Douglas (jim_at_[hidden])
Date: 2006-01-08 17:28:53
Eric Niebler wrote:
> I see that qcc/gpp supposedly is using the GNU C++ Std Lib.
Yes, but for some reason the wide character support has been disabled. I
am trying to find out why from QSSL. Given this limitation and the fact
that it can only be used when targeting the x86 platform (QNX supports
lots of others), I am considering abandoning the GNU lib altogether for
QNX6/Boost support. If your are having problems with the GNU library
please let me know, but do not spend too much time trying to resolve them.
> But looking
> at http://tinyurl.com/8k2ba, I see that for some reason _CPPLIB_VER was
> defined for this test, and not __GLIBC__. Is this toolset misconfigured?
No, just configured in QNX's idiosyncratic way ;-(
_CPPLIB_VER is unconditionally defined in yvals.h so it is inserted for
both the GNU & Dinkum libs.
You could test BOOST_DINKUMWARE_STDLIB as this is defined when
Boost.config (correctly) detects the use of the Dinkum C++ lib.
For QNX6 __GLIBCPP__ is defined (only) when using the GNU libs. There
does not appear to be a BOOST_* macro specifically for the GNU lib.
> Also, the qcc/cpp test, which supposedly *is* using Dinkumware's std
> lib, is having problems of its own. Elsewhere, Dinkumware's lib defined
> the following globals for use with _isctype: _ALPHA _UPPER _LOWER _DIGIT
> _SPACE _PUNCT _CONTROL _BLANK _HEX _LEADBYTE. But they don't exist for
> qcc/cpp. Why is that? Is there an equivalent I can use?
Can you tell me where "elsewhere" and which version of the Dinkum lib
has these defined? Do you happen to know in which header file they are
defined? AFAIK the lib is Dinkum's standard product.
Although might I be right in thinking that these global definitions
would be found in the core C library rather than being specific to the
C++ Standard Library? Are they a part of the C++ standard (or C standard
I will make enquiries with QSSL.
> And how can I detect that conditionally?
For future reference if you have to detect specifically for QNX then use
#if defined(__QNXNTO__) // note the double underscore before & after