Boost logo

Boost Users :

From: Christopher D. Russell (cdr_at_[hidden])
Date: 2004-04-28 04:31:52


Hello folks,

I'm just getting around to upgrade to Boost 1_31_0 from Boost 1_30_0. I'm
attempting to use 1_31_0 out-of-the-box (w/no bjam) but am confused about how
to resolve problems related to native wchar_t support (or lack thereof).

Some details:

I'm using MSV6 with the Intel 7.1 compiler. Specifically I'm using:
Intel(R) C++ Compiler for 32-bit applications, Version 7.1 Build 20030609Z

I added a few #pragma messages to the config headers and have verified that
config indeed seems to making the right decisions - at least at a high level:

[Boost Configure: Selected Intel Compiler]
[Boost Configure: Selected STLport Standard Library]
[Boost Configure: Selected Win32 Platform]

The specific error I encounter:

d:\ENCAPSULE-EXTLIB\boost\boost_1_31_0\boost_1_31_0\boost/type_traits/is_inte
gral.hpp(38): error: class "boost::is_integral<unsigned short>" has already
been defined
  BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
  ^
d:\ENCAPSULE-EXTLIB\boost\boost_1_31_0\boost_1_31_0\boost/type_traits/is_inte
gral.hpp(38): error: class "boost::is_integral<const unsigned short>" has
already been defined
  BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
  ^
d:\ENCAPSULE-EXTLIB\boost\boost_1_31_0\boost_1_31_0\boost/type_traits/is_inte
gral.hpp(38): error: class "boost::is_integral<volatile unsigned short>" has
already been defined
  BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
  ^
d:\ENCAPSULE-EXTLIB\boost\boost_1_31_0\boost_1_31_0\boost/type_traits/is_inte
gral.hpp(38): error: class "boost::is_integral<const volatile unsigned
short>" has already been defined
  BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
  ^
... tracked back into .../1_31_0/boost/type_traits/is_integral.hpp

#ifndef BOOST_NO_INTRINSIC_WCHAR_T
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
#endif

... where BOOST_NO_INTRINSIC_WCHAR_T is defined in
../1_31_0/boost/config/compiler/intel.hpp

// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
#if BOOST_INTEL_CXX_VERSION < 700
# define BOOST_NO_INTRINSIC_WCHAR_T
#else
// _WCHAR_T_DEFINED is the Win32 spelling
// _WCHAR_T is the Linux spelling
# if !defined(_WCHAR_T_DEFINED) && !defined(_WCHAR_T)
# define BOOST_NO_INTRINSIC_WCHAR_T
# endif
#endif

I read the post on ActiveState but I'm still confused. With the frequency of
Intel compiler updates is it possible this particular release is not setting
the expected macros correctly? If someone could give me a kick in the right
direction I would appreciate it. I really want to try some of these nifty
Spirit v1.8 facilities (wow Joel).

- Thanks
Chris


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net