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
  // _WCHAR_T_DEFINED is the Win32 spelling
  // _WCHAR_T is the Linux spelling
  # if !defined(_WCHAR_T_DEFINED) && !defined(_WCHAR_T)
  # 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.
      C++FLAGS +=
        # Emulate VC6

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


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

Boost list run by bdawes at, gregod at, cpdaniel at, john at