Fix up Intel C++0x features.

Fixes #5112.

[SVN r68472]
This commit is contained in:
John Maddock
2011-01-27 11:47:11 +00:00
parent 952b57fa7d
commit 69e5377957

View File

@ -27,14 +27,11 @@
#endif #endif
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
#if (BOOST_INTEL_CXX_VERSION >= 1200) #if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && __STDC_HOSTED__) || defined(__GXX_EXPERIMENTAL_CPP0X__)
# if defined(BOOST_INTEL_LINUX) && defined(__STDC_HOSTED__) # define BOOST_INTEL_STDCXX0X
# define BOOST_INTEL_STDCXX0X #endif
# endif #if defined(_MSC_VER) && (_MSC_VER >= 1600)
#elif (BOOST_INTEL_CXX_VERSION >= 1100) # define BOOST_INTEL_STDCXX0X
# if defined(__GXX_EXPERIMENTAL_CPP0X__)
# define BOOST_INTEL_STDCXX0X
# endif
#endif #endif
#ifdef BOOST_INTEL_STDCXX0X #ifdef BOOST_INTEL_STDCXX0X
@ -114,7 +111,7 @@
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# endif # endif
#endif #endif
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1110) #if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
// GCC or VC emulation: // GCC or VC emulation:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP #define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif #endif
@ -200,16 +197,25 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
// //
#if defined(BOOST_INTEL_STDCXX0X) #if defined(BOOST_INTEL_STDCXX0X)
# undef BOOST_NO_STATIC_ASSERT # undef BOOST_NO_STATIC_ASSERT
# define BOOST_HAS_STATIC_ASSERT //
// These pass our test cases, but aren't officially supported according to:
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
//
//# undef BOOST_NO_LAMBDAS
//# undef BOOST_NO_DECLTYPE
//# undef BOOST_NO_AUTO_DECLARATIONS
//# undef BOOST_NO_AUTO_MULTIDECLARATIONS
#endif #endif
//
// - decltype and && did not work properly before version 12.0
//
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200) #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
# undef BOOST_NO_DECLTYPE
# undef BOOST_NO_RVALUE_REFERENCES # undef BOOST_NO_RVALUE_REFERENCES
# define BOOST_HAS_DECLTYPE # undef BOOST_NO_SCOPED_ENUMS
# define BOOST_HAS_RVALUE_REFS # undef BOOST_NO_DELETED_FUNCTIONS
# undef BOOST_NO_DEFAULTED_FUNCTIONS
# undef BOOST_NO_LAMBDAS
# undef BOOST_NO_DECLTYPE
# undef BOOST_NO_AUTO_DECLARATIONS
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
#endif #endif
// //