BVB Source Codes

mars Show intel.hpp Source code

Return Download mars: download intel.hpp Source code - Download mars Source code - Type:.hpp
  1. //  (C) Copyright John Maddock 2001-8.
  2. //  (C) Copyright Peter Dimov 2001.
  3. //  (C) Copyright Jens Maurer 2001.
  4. //  (C) Copyright David Abrahams 2002 - 2003.
  5. //  (C) Copyright Aleksey Gurtovoy 2002 - 2003.
  6. //  (C) Copyright Guillaume Melquiond 2002 - 2003.
  7. //  (C) Copyright Beman Dawes 2003.
  8. //  (C) Copyright Martin Wille 2003.
  9. //  Use, modification and distribution are subject to the
  10. //  Boost Software License, Version 1.0. (See accompanying file
  11. //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  12.  
  13. //  See http://www.boost.org for most recent version.
  14.  
  15. //  Intel compiler setup:
  16.  
  17. #if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
  18.  
  19. #ifdef _MSC_VER
  20.  
  21. #include <boost/config/compiler/visualc.hpp>
  22.  
  23. #undef BOOST_MSVC
  24. #undef BOOST_MSVC_FULL_VER
  25.  
  26. #if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900)
  27. //
  28. // These appear to be supported, even though VC++ may not support them:
  29. //
  30. #define BOOST_HAS_EXPM1
  31. #define BOOST_HAS_LOG1P
  32. #undef BOOST_NO_CXX14_BINARY_LITERALS
  33. // This one may be a little risky to enable??
  34. #undef BOOST_NO_SFINAE_EXPR
  35.  
  36. #endif
  37.  
  38. #else
  39.  
  40. #include <boost/config/compiler/gcc.hpp>
  41.  
  42. #undef BOOST_GCC_VERSION
  43. #undef BOOST_GCC_CXX11
  44.  
  45. #endif
  46.  
  47. #undef BOOST_COMPILER
  48.  
  49. #if defined(__INTEL_COMPILER)
  50. #if __INTEL_COMPILER == 9999
  51. #  define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
  52. #else
  53. #  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
  54. #endif
  55. #elif defined(__ICL)
  56. #  define BOOST_INTEL_CXX_VERSION __ICL
  57. #elif defined(__ICC)
  58. #  define BOOST_INTEL_CXX_VERSION __ICC
  59. #elif defined(__ECC)
  60. #  define BOOST_INTEL_CXX_VERSION __ECC
  61. #endif
  62.  
  63. // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
  64. #if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
  65. #  define BOOST_INTEL_STDCXX0X
  66. #endif
  67. #if defined(_MSC_VER) && (_MSC_VER >= 1600)
  68. #  define BOOST_INTEL_STDCXX0X
  69. #endif
  70.  
  71. #ifdef __GNUC__
  72. #  define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
  73. #endif
  74.  
  75. #if !defined(BOOST_COMPILER)
  76. #  if defined(BOOST_INTEL_STDCXX0X)
  77. #    define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
  78. #  else
  79. #    define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
  80. #  endif
  81. #endif
  82.  
  83. #define BOOST_INTEL BOOST_INTEL_CXX_VERSION
  84.  
  85. #if defined(_WIN32) || defined(_WIN64)
  86. #  define BOOST_INTEL_WIN BOOST_INTEL
  87. #else
  88. #  define BOOST_INTEL_LINUX BOOST_INTEL
  89. #endif
  90.  
  91. #else
  92.  
  93. #include "boost/config/compiler/common_edg.hpp"
  94.  
  95. #if defined(__INTEL_COMPILER)
  96. #if __INTEL_COMPILER == 9999
  97. #  define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
  98. #else
  99. #  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
  100. #endif
  101. #elif defined(__ICL)
  102. #  define BOOST_INTEL_CXX_VERSION __ICL
  103. #elif defined(__ICC)
  104. #  define BOOST_INTEL_CXX_VERSION __ICC
  105. #elif defined(__ECC)
  106. #  define BOOST_INTEL_CXX_VERSION __ECC
  107. #endif
  108.  
  109. // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
  110. #if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
  111. #  define BOOST_INTEL_STDCXX0X
  112. #endif
  113. #if defined(_MSC_VER) && (_MSC_VER >= 1600)
  114. #  define BOOST_INTEL_STDCXX0X
  115. #endif
  116.  
  117. #ifdef __GNUC__
  118. #  define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
  119. #endif
  120.  
  121. #if !defined(BOOST_COMPILER)
  122. #  if defined(BOOST_INTEL_STDCXX0X)
  123. #    define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
  124. #  else
  125. #    define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
  126. #  endif
  127. #endif
  128.  
  129. #define BOOST_INTEL BOOST_INTEL_CXX_VERSION
  130.  
  131. #if defined(_WIN32) || defined(_WIN64)
  132. #  define BOOST_INTEL_WIN BOOST_INTEL
  133. #else
  134. #  define BOOST_INTEL_LINUX BOOST_INTEL
  135. #endif
  136.  
  137. #if (BOOST_INTEL_CXX_VERSION <= 600)
  138.  
  139. #  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
  140.  
  141. // Boost libraries assume strong standard conformance unless otherwise
  142. // indicated by a config macro. As configured by Intel, the EDG front-end
  143. // requires certain compiler options be set to achieve that strong conformance.
  144. // Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
  145. // and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
  146. // details as they apply to particular versions of the compiler. When the
  147. // compiler does not predefine a macro indicating if an option has been set,
  148. // this config file simply assumes the option has been set.
  149. // Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
  150. // the compiler option is not enabled.
  151.  
  152. #     define BOOST_NO_SWPRINTF
  153. #  endif
  154.  
  155. // Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
  156.  
  157. #  if defined(_MSC_VER) && (_MSC_VER <= 1200)
  158. #     define BOOST_NO_VOID_RETURNS
  159. #     define BOOST_NO_INTEGRAL_INT64_T
  160. #  endif
  161.  
  162. #endif
  163.  
  164. #if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
  165. #  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
  166. #endif
  167.  
  168. // See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
  169. #if BOOST_INTEL_CXX_VERSION < 600
  170. #  define BOOST_NO_INTRINSIC_WCHAR_T
  171. #else
  172. // We should test the macro _WCHAR_T_DEFINED to check if the compiler
  173. // supports wchar_t natively. *BUT* there is a problem here: the standard
  174. // headers define this macro if they typedef wchar_t. Anyway, we're lucky
  175. // because they define it without a value, while Intel C++ defines it
  176. // to 1. So we can check its value to see if the macro was defined natively
  177. // or not.
  178. // Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
  179. // is used instead.
  180. #  if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
  181. #    define BOOST_NO_INTRINSIC_WCHAR_T
  182. #  endif
  183. #endif
  184.  
  185. #if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
  186. //
  187. // Figure out when Intel is emulating this gcc bug
  188. // (All Intel versions prior to 9.0.26, and versions
  189. // later than that if they are set up to emulate gcc 3.2
  190. // or earlier):
  191. //
  192. #  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
  193. #     define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
  194. #  endif
  195. #endif
  196. #if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
  197. // GCC or VC emulation:
  198. #define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  199. #endif
  200. //
  201. // Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
  202. // set correctly, if we don't do this now, we will get errors later
  203. // in type_traits code among other things, getting this correct
  204. // for the Intel compiler is actually remarkably fragile and tricky:
  205. //
  206. #ifdef __cplusplus
  207. #if defined(BOOST_NO_INTRINSIC_WCHAR_T)
  208. #include <cwchar>
  209. template< typename T > struct assert_no_intrinsic_wchar_t;
  210. template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
  211. // if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
  212. // where it is defined above:
  213. typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
  214. #else
  215. template< typename T > struct assert_intrinsic_wchar_t;
  216. template<> struct assert_intrinsic_wchar_t<wchar_t> {};
  217. // if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
  218. template<> struct assert_intrinsic_wchar_t<unsigned short> {};
  219. #endif
  220. #endif
  221.  
  222. #if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
  223. #  if _MSC_VER >= 1200
  224. #     define BOOST_HAS_MS_INT64
  225. #  endif
  226. #  define BOOST_NO_SWPRINTF
  227. #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  228. #elif defined(_WIN32)
  229. #  define BOOST_DISABLE_WIN32
  230. #endif
  231.  
  232. // I checked version 6.0 build 020312Z, it implements the NRVO.
  233. // Correct this as you find out which version of the compiler
  234. // implemented the NRVO first.  (Daniel Frey)
  235. #if (BOOST_INTEL_CXX_VERSION >= 600)
  236. #  define BOOST_HAS_NRVO
  237. #endif
  238.  
  239. // Branch prediction hints
  240. // I'm not sure 8.0 was the first version to support these builtins,
  241. // update the condition if the version is not accurate. (Andrey Semashev)
  242. #if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
  243. #define BOOST_LIKELY(x) __builtin_expect(x, 1)
  244. #define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
  245. #endif
  246.  
  247. // RTTI
  248. // __RTTI is the EDG macro
  249. // __INTEL_RTTI__ is the Intel macro
  250. // __GXX_RTTI is the g++ macro
  251. // _CPPRTTI is the MSVC++ macro
  252. #if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
  253.  
  254. #if !defined(BOOST_NO_RTTI)
  255. # define BOOST_NO_RTTI
  256. #endif
  257.  
  258. // in MS mode, static typeid works even when RTTI is off
  259. #if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
  260. # define BOOST_NO_TYPEID
  261. #endif
  262.  
  263. #endif
  264.  
  265. //
  266. // versions check:
  267. // we don't support Intel prior to version 6.0:
  268. #if BOOST_INTEL_CXX_VERSION < 600
  269. #  error "Compiler not supported or configured - please reconfigure"
  270. #endif
  271.  
  272. // Intel on MacOS requires
  273. #if defined(__APPLE__) && defined(__INTEL_COMPILER)
  274. #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  275. #endif
  276.  
  277. // Intel on Altix Itanium
  278. #if defined(__itanium__) && defined(__INTEL_COMPILER)
  279. #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  280. #endif
  281.  
  282. //
  283. // An attempt to value-initialize a pointer-to-member may trigger an
  284. // internal error on Intel <= 11.1 (last checked version), as was
  285. // reported by John Maddock, Intel support issue 589832, May 2010.
  286. // Moreover, according to test results from Huang-Vista-x86_32_intel,
  287. // intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
  288. // cases when it should be value-initialized.
  289. // (Niels Dekker, LKEB, May 2010)
  290. // Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
  291. #if defined(__INTEL_COMPILER)
  292. #  if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
  293. #    define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
  294. #  endif
  295. #endif
  296.  
  297. //
  298. // Dynamic shared object (DSO) and dynamic-link library (DLL) support
  299. //
  300. #if defined(__GNUC__) && (__GNUC__ >= 4)
  301. #  define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
  302. #  define BOOST_SYMBOL_IMPORT
  303. #  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
  304. #endif
  305. //
  306. // C++0x features
  307. // For each feature we need to check both the Intel compiler version,
  308. // and the version of MSVC or GCC that we are emulating.
  309. // See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
  310. // for a list of which features were implemented in which Intel releases.
  311. //
  312. #if defined(BOOST_INTEL_STDCXX0X)
  313. // BOOST_NO_CXX11_CONSTEXPR:
  314. #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER)
  315. // Available in earlier Intel versions, but fail our tests:
  316. #  undef BOOST_NO_CXX11_CONSTEXPR
  317. #endif
  318. // BOOST_NO_CXX11_NULLPTR:
  319. #if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
  320. #  undef BOOST_NO_CXX11_NULLPTR
  321. #endif
  322. // BOOST_NO_CXX11_TEMPLATE_ALIASES
  323. #if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  324. #  undef BOOST_NO_CXX11_TEMPLATE_ALIASES
  325. #endif
  326.  
  327. // BOOST_NO_CXX11_DECLTYPE
  328. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
  329. #  undef BOOST_NO_CXX11_DECLTYPE
  330. #endif
  331.  
  332. // BOOST_NO_CXX11_DECLTYPE_N3276
  333. #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  334. #  undef BOOST_NO_CXX11_DECLTYPE_N3276
  335. #endif
  336.  
  337. // BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
  338. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  339. #  undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
  340. #endif
  341.  
  342. // BOOST_NO_CXX11_RVALUE_REFERENCES
  343. #if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
  344. // This is available from earlier Intel versions, but breaks Filesystem and other libraries:
  345. #  undef BOOST_NO_CXX11_RVALUE_REFERENCES
  346. #endif
  347.  
  348. // BOOST_NO_CXX11_STATIC_ASSERT
  349. #if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
  350. #  undef BOOST_NO_CXX11_STATIC_ASSERT
  351. #endif
  352.  
  353. // BOOST_NO_CXX11_VARIADIC_TEMPLATES
  354. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  355. #  undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
  356. #endif
  357.  
  358. // BOOST_NO_CXX11_VARIADIC_MACROS
  359. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
  360. #  undef BOOST_NO_CXX11_VARIADIC_MACROS
  361. #endif
  362.  
  363. // BOOST_NO_CXX11_AUTO_DECLARATIONS
  364. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
  365. #  undef BOOST_NO_CXX11_AUTO_DECLARATIONS
  366. #endif
  367.  
  368. // BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
  369. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
  370. #  undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
  371. #endif
  372.  
  373. // BOOST_NO_CXX11_CHAR16_T
  374. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
  375. #  undef BOOST_NO_CXX11_CHAR16_T
  376. #endif
  377.  
  378. // BOOST_NO_CXX11_CHAR32_T
  379. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
  380. #  undef BOOST_NO_CXX11_CHAR32_T
  381. #endif
  382.  
  383. // BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
  384. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  385. #  undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
  386. #endif
  387.  
  388. // BOOST_NO_CXX11_DELETED_FUNCTIONS
  389. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  390. #  undef BOOST_NO_CXX11_DELETED_FUNCTIONS
  391. #endif
  392.  
  393. // BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  394. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
  395. #  undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  396. #endif
  397.  
  398. // BOOST_NO_CXX11_SCOPED_ENUMS
  399. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
  400. // This is available but broken in earlier Intel releases.
  401. #  undef BOOST_NO_CXX11_SCOPED_ENUMS
  402. #endif
  403.  
  404. // BOOST_NO_SFINAE_EXPR
  405. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
  406. #  undef BOOST_NO_SFINAE_EXPR
  407. #endif
  408.  
  409. // BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
  410. #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  411. // This is available in earlier Intel releases, but breaks Multiprecision:
  412. #  undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
  413. #endif
  414.  
  415. // BOOST_NO_CXX11_LAMBDAS
  416. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
  417. #  undef BOOST_NO_CXX11_LAMBDAS
  418. #endif
  419.  
  420. // BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
  421. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500))
  422. #  undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
  423. #endif
  424.  
  425. // BOOST_NO_CXX11_RANGE_BASED_FOR
  426. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
  427. #  undef BOOST_NO_CXX11_RANGE_BASED_FOR
  428. #endif
  429.  
  430. // BOOST_NO_CXX11_RAW_LITERALS
  431. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  432. #  undef BOOST_NO_CXX11_RAW_LITERALS
  433. #endif
  434.  
  435. // BOOST_NO_CXX11_UNICODE_LITERALS
  436. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
  437. #  undef BOOST_NO_CXX11_UNICODE_LITERALS
  438. #endif
  439.  
  440. // BOOST_NO_CXX11_NOEXCEPT
  441. #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
  442. // Available in earlier Intel release, but generates errors when used with
  443. // conditional exception specifications, for example in multiprecision:
  444. #  undef BOOST_NO_CXX11_NOEXCEPT
  445. #endif
  446.  
  447. // BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
  448. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
  449. #  undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
  450. #endif
  451.  
  452. // BOOST_NO_CXX11_USER_DEFINED_LITERALS
  453. #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
  454. #  undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
  455. #endif
  456.  
  457. // BOOST_NO_CXX11_ALIGNAS
  458. #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
  459. #  undef BOOST_NO_CXX11_ALIGNAS
  460. #endif
  461.  
  462. // BOOST_NO_CXX11_TRAILING_RESULT_TYPES
  463. #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
  464. #  undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
  465. #endif
  466.  
  467. // BOOST_NO_CXX11_INLINE_NAMESPACES
  468. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
  469. #  undef BOOST_NO_CXX11_INLINE_NAMESPACES
  470. #endif
  471.  
  472. // BOOST_NO_CXX11_REF_QUALIFIERS
  473. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
  474. #  undef BOOST_NO_CXX11_REF_QUALIFIERS
  475. #endif
  476.  
  477. // BOOST_NO_CXX11_FINAL
  478. #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
  479. #  undef BOOST_NO_CXX11_FINAL
  480. #endif
  481.  
  482. #endif
  483.  
  484. //
  485. // Broken in all versions up to 15:
  486. #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
  487.  
  488. #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
  489. #  define BOOST_NO_CXX11_HDR_FUTURE
  490. #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  491. #endif
  492.  
  493. #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
  494. // A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
  495. #  define BOOST_NO_CXX11_HDR_FUTURE
  496. #  define BOOST_NO_CXX11_HDR_TUPLE
  497. #endif
  498.  
  499. #if (BOOST_INTEL_CXX_VERSION < 1200)
  500. //
  501. // fenv.h appears not to work with Intel prior to 12.0:
  502. //
  503. #  define BOOST_NO_FENV_H
  504. #endif
  505.  
  506. // Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
  507. // producing the following errors:
  508. // error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
  509. #if (BOOST_INTEL_CXX_VERSION <= 1310)
  510. #  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
  511. #endif
  512.  
  513. #if defined(_MSC_VER) && (_MSC_VER >= 1600)
  514. #  define BOOST_HAS_STDINT_H
  515. #endif
  516.  
  517. #if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(__CUDACC__)
  518. #  define BOOST_HAS_INT128
  519. #endif
  520.  
  521. #endif
  522. //
  523. // last known and checked version:
  524. #if (BOOST_INTEL_CXX_VERSION > 1500)
  525. #  if defined(BOOST_ASSERT_CONFIG)
  526. #     error "Unknown compiler version - please run the configure tests and report the results"
  527. #  elif defined(_MSC_VER)
  528. //
  529. //      We don't emit this warning any more, since we have so few
  530. //      defect macros set anyway (just the one).
  531. //
  532. //#     pragma message("Unknown compiler version - please run the configure tests and report the results")
  533. #  endif
  534. #endif
  535.  
  536.  
downloadintel.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top