Edward Diener
John Maddock wrote:
Guys,
We could of course create a new build variant to handle this, but with 8 regex lib/dll variants already I'm not keen to add another 8 (apart from anything else testing already takes too long).
I think you have to do this John if you want to support both the C++ wchar_t and the MS wchar_t in Boost libraries. Although there are VC++ predefined macros, _WCHAR_T_DEFINED and _NATIVE_WCHAR_T_DEFINED, which are defined when /Zc:wchar_t is used, they are also stupidly defined, according to the documentation, when typedef unsigned short wchar_t is used ( talk about idiotic MS decisions ).
That appears to be a documentation bug. I checked this in VC++ 7.1 and _NATIVE_WCHAR_T_DEFINED is not defined by <cstddef>. There is no sign of a #define _NATIVE_WCHAR_T_DEFINED in the headers for version 7.0 or 7.1.
So Boost needs to use a macro which the end-programmer must define which tells whether or not /Zc:wchar_t is being used or not, and create another set of libraries accordingly.
Even in the absence of a macro, this test works:
#include <cstddef>
#include <iostream>
#include <ostream>
#include "boost/type_traits.hpp"
int main()
{
std::cout << "/Zc:wchar_t was ";
if (!boost::is_same