Ticket #5112: intel-c++0x-v1.patch

File intel-c++0x-v1.patch, 1.8 KB (added by spillner@…, 12 years ago)

Patches boost/config/compiler/intel.hpp to detect C++0x features when the -std=c++0x switch is passed to icpc

Line 
1*** intel.hpp.orig 2011-01-23 13:59:12.000000000 +0000
2--- intel.hpp 2011-01-23 23:27:06.000000000 +0000
3***************
4*** 35,40 ****
5--- 35,58 ----
6 # define BOOST_INTEL_LINUX BOOST_INTEL
7 #endif
8
9+ // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
10+ #if (BOOST_INTEL_CXX_VERSION >= 1200)
11+ # if defined(BOOST_INTEL_LINUX) && defined(__STDC_HOSTED__) || defined(BOOST_INTEL_WIN) && !defined(_MSC_EXTENSIONS)
12+ # define BOOST_INTEL_STDCXX0X
13+ # endif
14+ #elif (BOOST_INTEL_CXX_VERSION >= 1100)
15+ # if defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(BOOST_INTEL_WIN) && !defined(_MSC_EXTENSIONS)
16+ # define BOOST_INTEL_STDCXX0X
17+ # endif
18+ #endif
19+
20+ #if defined(BOOST_INTEL_STDCXX0X) && !defined(BOOST_COMPILER_PREFIX)
21+ # define BOOST_COMPILER_PREFIX BOOST_COMPILER
22+ # undef BOOST_COMPILER
23+ # define BOOST_COMPILER BOOST_COMPILER_PREFIX " (C++0x mode)"
24+ # undef BOOST_COMPILER_PREFIX
25+ #endif
26+
27 #if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
28 # define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
29 # define BOOST_NO_TEMPLATE_TEMPLATES
30***************
31*** 181,186 ****
32--- 199,224 ----
33 #endif
34
35 //
36+ // C++0x features
37+ // - ICC added static_assert in 11.0 (first version with C++0x support)
38+ //
39+ #if defined(BOOST_INTEL_STDCXX0X)
40+ # define BOOST_HAS_STATIC_ASSERT
41+ #else
42+ # define BOOST_NO_STATIC_ASSERT
43+ #endif
44+ //
45+ // - decltype and && did not work properly before version 12.0
46+ //
47+ #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
48+ # define BOOST_HAS_DECLTYPE
49+ # define BOOST_HAS_RVALUE_REFS
50+ #else
51+ # define BOOST_NO_DECLTYPE
52+ # define BOOST_NO_RVALUE_REFERENCES
53+ #endif
54+
55+ //
56 // last known and checked version:
57 #if (BOOST_INTEL_CXX_VERSION > 1110)
58 # if defined(BOOST_ASSERT_CONFIG)