Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-11-12 17:05:54


I believe recent changes to the intel compiler config are wrong, or
at the very least incompatible with what Boost.Build is doing:

  // 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

The above unconditionally decides that intel5 and intel6 don't support
intrinsic wchar_t. I believe that to be in error. The Boost.Build
logic is:

  # tell the compiler about the base toolset.
  if $(INTEL_BASE_MSVC_TOOLSET) = msvc
  {
      C++FLAGS +=
        # Emulate VC6
        /Qvc6

        # no wchar_t support in vc6 dinkum library. Furthermore, in vc6
        # compatibility-mode, wchar_t is not a distinct type from unsigned
        # short
        -DBOOST_NO_INTRINSIC_WCHAR_T
        ;
  }
  else
  {
      if $(version) > 5
      {
          # Add support for wchar_t
          C++FLAGS += /Zc:wchar_t
            # Tell the dinkumware library about it.
            -D_NATIVE_WCHAR_T_DEFINED
            ;
      }

      C++FLAGS += /Q$(INTEL_BASE_MSVC_TOOLSET) ;
  }

Which says that if Intel C++ is being used on windows over msvc6 and
its standard library, there is no wchar_t support. Otherwise,
versions of intel C++ > 5 over vc7 or vc7.1 get explicit and automatic
support for wchar_t.

We have had a long history of difficulty in correctly configuring
intel C++ for windows w.r.t. wchar_t support, in part because what's
supported depends not only on its compiler flags but also on what the
underlying standard library implementation does and which version of
msvc it's trying to emulate. Changes should not be made lightly.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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