From 591657959b8c07578e8c9c3a635e04316eb4b232 Mon Sep 17 00:00:00 2001 From: Alexander Nasonov Date: Sun, 16 Apr 2006 16:17:59 +0000 Subject: [PATCH] Applying blindly WCHAR_MAX fix for VC7.1 [SVN r33710] --- test/promote_basic_test.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/test/promote_basic_test.cpp b/test/promote_basic_test.cpp index 3bef939..c770433 100755 --- a/test/promote_basic_test.cpp +++ b/test/promote_basic_test.cpp @@ -51,18 +51,31 @@ int main() test_cv< long, long >(); test_cv< unsigned long, unsigned long >(); -#if defined(BOOST_NO_CWCHAR) || !defined(WCHAR_MAX) || !defined(WCHAR_MIN) -// Skip wchar_t promotion -#elif WCHAR_MAX <= INT_MAX + // wchar_t + +#if !defined(BOOST_NO_CWCHAR) && defined(WCHAR_MAX) && defined(WCHAR_MIN) + +// Version prior to VC8 didn't allow WCHAR_MAX in #if expressions +#if defined(BOOST_MSVC) && BOOST_MSVC < 1400 +#define BOOST_TT_AUX_WCHAR_MAX 0 // force test_cv< wchar_t, int > +#else +#define BOOST_TT_AUX_WCHAR_MAX WCHAR_MAX +#endif + +#if BOOST_TT_AUX_WCHAR_MAX <= INT_MAX test_cv< wchar_t, int >(); -#elif WCHAR_MIN == 0 && WCHAR_MAX <= UINT_MAX +#elif WCHAR_MIN == 0 && BOOST_TT_AUX_WCHAR_MAX <= UINT_MAX test_cv< wchar_t, unsigned int >(); -#elif WCHAR_MAX <= LONG_MAX +#elif BOOST_TT_AUX_WCHAR_MAX <= LONG_MAX test_cv< wchar_t, long >(); #else test_cv< wchar_t, unsigned long >(); #endif +#undef BOOST_TT_AUX_WCHAR_MAX + +#endif + // floating point promotion