1 /* 2 Copyright Rene Rivera 2008-2017 3 Distributed under the Boost Software License, Version 1.0. 4 (See accompanying file LICENSE_1_0.txt or copy at 5 http://www.boost.org/LICENSE_1_0.txt) 6 */ 7 8 #ifndef BOOST_PREDEF_COMPILER_INTEL_H 9 #define BOOST_PREDEF_COMPILER_INTEL_H 10 11 #include <boost/predef/version_number.h> 12 #include <boost/predef/make.h> 13 14 /*` 15 [heading `BOOST_COMP_INTEL`] 16 17 [@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler. 18 Version number available as major, minor, and patch. 19 20 [table 21 [[__predef_symbol__] [__predef_version__]] 22 23 [[`__INTEL_COMPILER`] [__predef_detection__]] 24 [[`__ICL`] [__predef_detection__]] 25 [[`__ICC`] [__predef_detection__]] 26 [[`__ECC`] [__predef_detection__]] 27 28 [[`__INTEL_COMPILER`] [V.R]] 29 [[`__INTEL_COMPILER` and `__INTEL_COMPILER_UPDATE`] [V.R.P]] 30 ] 31 */ 32 33 #define BOOST_COMP_INTEL BOOST_VERSION_NUMBER_NOT_AVAILABLE 34 35 #if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \ 36 defined(__ECC) 37 /*` 38 [note Because of an Intel mistake in the release version numbering when 39 `__INTEL_COMPILER` is `9999` it is detected as version 12.1.0.] 40 */ 41 # if !defined(BOOST_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 9999) 42 # define BOOST_COMP_INTEL_DETECTION BOOST_VERSION_NUMBER(12,1,0) 43 # endif 44 # if !defined(BOOST_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) 45 # define BOOST_COMP_INTEL_DETECTION BOOST_VERSION_NUMBER( \ 46 BOOST_VERSION_NUMBER_MAJOR(BOOST_PREDEF_MAKE_10_VVRR(__INTEL_COMPILER)), \ 47 BOOST_VERSION_NUMBER_MINOR(BOOST_PREDEF_MAKE_10_VVRR(__INTEL_COMPILER)), \ 48 __INTEL_COMPILER_UPDATE) 49 # endif 50 # if !defined(BOOST_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) 51 # define BOOST_COMP_INTEL_DETECTION BOOST_PREDEF_MAKE_10_VVRR(__INTEL_COMPILER) 52 # endif 53 # if !defined(BOOST_COMP_INTEL_DETECTION) 54 # define BOOST_COMP_INTEL_DETECTION BOOST_VERSION_NUMBER_AVAILABLE 55 # endif 56 #endif 57 58 #ifdef BOOST_COMP_INTEL_DETECTION 59 # if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) 60 # define BOOST_COMP_INTEL_EMULATED BOOST_COMP_INTEL_DETECTION 61 # else 62 # undef BOOST_COMP_INTEL 63 # define BOOST_COMP_INTEL BOOST_COMP_INTEL_DETECTION 64 # endif 65 # define BOOST_COMP_INTEL_AVAILABLE 66 # include <boost/predef/detail/comp_detected.h> 67 #endif 68 69 #define BOOST_COMP_INTEL_NAME "Intel C/C++" 70 71 #endif 72 73 #include <boost/predef/detail/test.h> 74 BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_INTEL,BOOST_COMP_INTEL_NAME) 75 76 #ifdef BOOST_COMP_INTEL_EMULATED 77 #include <boost/predef/detail/test.h> 78 BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_INTEL_EMULATED,BOOST_COMP_INTEL_NAME) 79 #endif 80