github.com/searKing/golang/go@v1.2.117/os/signal/cgo/include/boost/config/compiler/intel.hpp (about)

     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  #if (__INTEL_COMPILER <= 1600) && !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
    39  #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
    40  #endif
    41  
    42  #else // defined(_MSC_VER)
    43  
    44  #include <boost/config/compiler/gcc.hpp>
    45  
    46  #undef BOOST_GCC_VERSION
    47  #undef BOOST_GCC_CXX11
    48  #undef BOOST_GCC
    49  #undef BOOST_FALLTHROUGH
    50  
    51  // Broken in all versions up to 17 (newer versions not tested)
    52  #if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR)
    53  #  define BOOST_NO_CXX14_CONSTEXPR
    54  #endif
    55  
    56  #if (__INTEL_COMPILER >= 1800) && (__cplusplus >= 201703)
    57  #  define BOOST_FALLTHROUGH [[fallthrough]]
    58  #endif
    59  
    60  #endif // defined(_MSC_VER)
    61  
    62  #undef BOOST_COMPILER
    63  
    64  #if defined(__INTEL_COMPILER)
    65  #if __INTEL_COMPILER == 9999
    66  #  define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
    67  #else
    68  #  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
    69  #endif
    70  #elif defined(__ICL)
    71  #  define BOOST_INTEL_CXX_VERSION __ICL
    72  #elif defined(__ICC)
    73  #  define BOOST_INTEL_CXX_VERSION __ICC
    74  #elif defined(__ECC)
    75  #  define BOOST_INTEL_CXX_VERSION __ECC
    76  #endif
    77  
    78  // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
    79  #if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
    80  #  define BOOST_INTEL_STDCXX0X
    81  #endif
    82  #if defined(_MSC_VER) && (_MSC_VER >= 1600)
    83  #  define BOOST_INTEL_STDCXX0X
    84  #endif
    85  
    86  #ifdef __GNUC__
    87  #  define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
    88  #endif
    89  
    90  #if !defined(BOOST_COMPILER)
    91  #  if defined(BOOST_INTEL_STDCXX0X)
    92  #    define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
    93  #  else
    94  #    define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
    95  #  endif
    96  #endif
    97  
    98  #define BOOST_INTEL BOOST_INTEL_CXX_VERSION
    99  
   100  #if defined(_WIN32) || defined(_WIN64)
   101  #  define BOOST_INTEL_WIN BOOST_INTEL
   102  #else
   103  #  define BOOST_INTEL_LINUX BOOST_INTEL
   104  #endif
   105  
   106  #else // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
   107  
   108  #include <boost/config/compiler/common_edg.hpp>
   109  
   110  #if defined(__INTEL_COMPILER)
   111  #if __INTEL_COMPILER == 9999
   112  #  define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
   113  #else
   114  #  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
   115  #endif
   116  #elif defined(__ICL)
   117  #  define BOOST_INTEL_CXX_VERSION __ICL
   118  #elif defined(__ICC)
   119  #  define BOOST_INTEL_CXX_VERSION __ICC
   120  #elif defined(__ECC)
   121  #  define BOOST_INTEL_CXX_VERSION __ECC
   122  #endif
   123  
   124  // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
   125  #if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
   126  #  define BOOST_INTEL_STDCXX0X
   127  #endif
   128  #if defined(_MSC_VER) && (_MSC_VER >= 1600)
   129  #  define BOOST_INTEL_STDCXX0X
   130  #endif
   131  
   132  #ifdef __GNUC__
   133  #  define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
   134  #endif
   135  
   136  #if !defined(BOOST_COMPILER)
   137  #  if defined(BOOST_INTEL_STDCXX0X)
   138  #    define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
   139  #  else
   140  #    define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
   141  #  endif
   142  #endif
   143  
   144  #define BOOST_INTEL BOOST_INTEL_CXX_VERSION
   145  
   146  #if defined(_WIN32) || defined(_WIN64)
   147  #  define BOOST_INTEL_WIN BOOST_INTEL
   148  #else
   149  #  define BOOST_INTEL_LINUX BOOST_INTEL
   150  #endif
   151  
   152  #if (BOOST_INTEL_CXX_VERSION <= 600)
   153  
   154  #  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
   155  
   156  // Boost libraries assume strong standard conformance unless otherwise
   157  // indicated by a config macro. As configured by Intel, the EDG front-end
   158  // requires certain compiler options be set to achieve that strong conformance.
   159  // Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
   160  // and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
   161  // details as they apply to particular versions of the compiler. When the
   162  // compiler does not predefine a macro indicating if an option has been set,
   163  // this config file simply assumes the option has been set.
   164  // Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
   165  // the compiler option is not enabled.
   166  
   167  #     define BOOST_NO_SWPRINTF
   168  #  endif
   169  
   170  // Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
   171  
   172  #  if defined(_MSC_VER) && (_MSC_VER <= 1200)
   173  #     define BOOST_NO_VOID_RETURNS
   174  #     define BOOST_NO_INTEGRAL_INT64_T
   175  #  endif
   176  
   177  #endif
   178  
   179  #if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
   180  #  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
   181  #endif
   182  
   183  // See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
   184  #if BOOST_INTEL_CXX_VERSION < 600
   185  #  define BOOST_NO_INTRINSIC_WCHAR_T
   186  #else
   187  // We should test the macro _WCHAR_T_DEFINED to check if the compiler
   188  // supports wchar_t natively. *BUT* there is a problem here: the standard
   189  // headers define this macro if they typedef wchar_t. Anyway, we're lucky
   190  // because they define it without a value, while Intel C++ defines it
   191  // to 1. So we can check its value to see if the macro was defined natively
   192  // or not.
   193  // Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
   194  // is used instead.
   195  #  if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
   196  #    define BOOST_NO_INTRINSIC_WCHAR_T
   197  #  endif
   198  #endif
   199  
   200  #if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
   201  //
   202  // Figure out when Intel is emulating this gcc bug
   203  // (All Intel versions prior to 9.0.26, and versions
   204  // later than that if they are set up to emulate gcc 3.2
   205  // or earlier):
   206  //
   207  #  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
   208  #     define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
   209  #  endif
   210  #endif
   211  #if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
   212  // GCC or VC emulation:
   213  #define BOOST_NO_TWO_PHASE_NAME_LOOKUP
   214  #endif
   215  //
   216  // Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
   217  // set correctly, if we don't do this now, we will get errors later
   218  // in type_traits code among other things, getting this correct
   219  // for the Intel compiler is actually remarkably fragile and tricky:
   220  //
   221  #ifdef __cplusplus
   222  #if defined(BOOST_NO_INTRINSIC_WCHAR_T)
   223  #include <cwchar>
   224  template< typename T > struct assert_no_intrinsic_wchar_t;
   225  template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
   226  // if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
   227  // where it is defined above:
   228  typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
   229  #else
   230  template< typename T > struct assert_intrinsic_wchar_t;
   231  template<> struct assert_intrinsic_wchar_t<wchar_t> {};
   232  // if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
   233  template<> struct assert_intrinsic_wchar_t<unsigned short> {};
   234  #endif
   235  #endif
   236  
   237  #if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
   238  #  if _MSC_VER >= 1200
   239  #     define BOOST_HAS_MS_INT64
   240  #  endif
   241  #  define BOOST_NO_SWPRINTF
   242  #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
   243  #elif defined(_WIN32)
   244  #  define BOOST_DISABLE_WIN32
   245  #endif
   246  
   247  // I checked version 6.0 build 020312Z, it implements the NRVO.
   248  // Correct this as you find out which version of the compiler
   249  // implemented the NRVO first.  (Daniel Frey)
   250  #if (BOOST_INTEL_CXX_VERSION >= 600)
   251  #  define BOOST_HAS_NRVO
   252  #endif
   253  
   254  // Branch prediction hints
   255  // I'm not sure 8.0 was the first version to support these builtins,
   256  // update the condition if the version is not accurate. (Andrey Semashev)
   257  #if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
   258  #define BOOST_LIKELY(x) __builtin_expect(x, 1)
   259  #define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
   260  #endif
   261  
   262  // RTTI
   263  // __RTTI is the EDG macro
   264  // __INTEL_RTTI__ is the Intel macro
   265  // __GXX_RTTI is the g++ macro
   266  // _CPPRTTI is the MSVC++ macro
   267  #if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
   268  
   269  #if !defined(BOOST_NO_RTTI)
   270  # define BOOST_NO_RTTI
   271  #endif
   272  
   273  // in MS mode, static typeid works even when RTTI is off
   274  #if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
   275  # define BOOST_NO_TYPEID
   276  #endif
   277  
   278  #endif
   279  
   280  //
   281  // versions check:
   282  // we don't support Intel prior to version 6.0:
   283  #if BOOST_INTEL_CXX_VERSION < 600
   284  #  error "Compiler not supported or configured - please reconfigure"
   285  #endif
   286  
   287  // Intel on MacOS requires
   288  #if defined(__APPLE__) && defined(__INTEL_COMPILER)
   289  #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
   290  #endif
   291  
   292  // Intel on Altix Itanium
   293  #if defined(__itanium__) && defined(__INTEL_COMPILER)
   294  #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
   295  #endif
   296  
   297  //
   298  // An attempt to value-initialize a pointer-to-member may trigger an
   299  // internal error on Intel <= 11.1 (last checked version), as was
   300  // reported by John Maddock, Intel support issue 589832, May 2010.
   301  // Moreover, according to test results from Huang-Vista-x86_32_intel,
   302  // intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
   303  // cases when it should be value-initialized.
   304  // (Niels Dekker, LKEB, May 2010)
   305  // Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
   306  #if defined(__INTEL_COMPILER)
   307  #  if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
   308  #    define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
   309  #  endif
   310  #endif
   311  
   312  //
   313  // Dynamic shared object (DSO) and dynamic-link library (DLL) support
   314  //
   315  #if defined(__GNUC__) && (__GNUC__ >= 4)
   316  #  define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
   317  #  define BOOST_SYMBOL_IMPORT
   318  #  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
   319  #endif
   320  
   321  // Type aliasing hint
   322  #if defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1300)
   323  #  define BOOST_MAY_ALIAS __attribute__((__may_alias__))
   324  #endif
   325  
   326  //
   327  // C++0x features
   328  // For each feature we need to check both the Intel compiler version, 
   329  // and the version of MSVC or GCC that we are emulating.
   330  // See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
   331  // for a list of which features were implemented in which Intel releases.
   332  //
   333  #if defined(BOOST_INTEL_STDCXX0X)
   334  // BOOST_NO_CXX11_CONSTEXPR:
   335  #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER)
   336  // Available in earlier Intel versions, but fail our tests:
   337  #  undef BOOST_NO_CXX11_CONSTEXPR
   338  #endif
   339  // BOOST_NO_CXX11_NULLPTR:
   340  #if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
   341  #  undef BOOST_NO_CXX11_NULLPTR
   342  #endif
   343  // BOOST_NO_CXX11_TEMPLATE_ALIASES
   344  #if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   345  #  undef BOOST_NO_CXX11_TEMPLATE_ALIASES
   346  #endif
   347  
   348  // BOOST_NO_CXX11_DECLTYPE
   349  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
   350  #  undef BOOST_NO_CXX11_DECLTYPE
   351  #endif
   352  
   353  // BOOST_NO_CXX11_DECLTYPE_N3276
   354  #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   355  #  undef BOOST_NO_CXX11_DECLTYPE_N3276
   356  #endif
   357  
   358  // BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
   359  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   360  #  undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
   361  #endif
   362  
   363  // BOOST_NO_CXX11_RVALUE_REFERENCES
   364  #if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
   365  // This is available from earlier Intel versions, but breaks Filesystem and other libraries:
   366  #  undef BOOST_NO_CXX11_RVALUE_REFERENCES
   367  #endif
   368  
   369  // BOOST_NO_CXX11_STATIC_ASSERT
   370  #if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
   371  #  undef BOOST_NO_CXX11_STATIC_ASSERT
   372  #endif
   373  
   374  // BOOST_NO_CXX11_VARIADIC_TEMPLATES
   375  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   376  #  undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
   377  #endif
   378  
   379  // BOOST_NO_CXX11_VARIADIC_MACROS
   380  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
   381  #  undef BOOST_NO_CXX11_VARIADIC_MACROS
   382  #endif
   383  
   384  // BOOST_NO_CXX11_AUTO_DECLARATIONS
   385  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
   386  #  undef BOOST_NO_CXX11_AUTO_DECLARATIONS
   387  #endif
   388  
   389  // BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
   390  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
   391  #  undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
   392  #endif
   393  
   394  // BOOST_NO_CXX11_CHAR16_T
   395  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
   396  #  undef BOOST_NO_CXX11_CHAR16_T
   397  #endif
   398  
   399  // BOOST_NO_CXX11_CHAR32_T
   400  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
   401  #  undef BOOST_NO_CXX11_CHAR32_T
   402  #endif
   403  
   404  // BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
   405  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   406  #  undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
   407  #endif
   408  
   409  // BOOST_NO_CXX11_DELETED_FUNCTIONS
   410  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   411  #  undef BOOST_NO_CXX11_DELETED_FUNCTIONS
   412  #endif
   413  
   414  // BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   415  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
   416  #  undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   417  #endif
   418  
   419  // BOOST_NO_CXX11_SCOPED_ENUMS
   420  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
   421  // This is available but broken in earlier Intel releases.
   422  #  undef BOOST_NO_CXX11_SCOPED_ENUMS
   423  #endif
   424  
   425  // BOOST_NO_SFINAE_EXPR
   426  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
   427  #  undef BOOST_NO_SFINAE_EXPR
   428  #endif
   429  
   430  // BOOST_NO_CXX11_SFINAE_EXPR
   431  #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && !defined(_MSC_VER)
   432  #  undef BOOST_NO_CXX11_SFINAE_EXPR
   433  #endif
   434  
   435  // BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
   436  #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   437  // This is available in earlier Intel releases, but breaks Multiprecision:
   438  #  undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
   439  #endif
   440  
   441  // BOOST_NO_CXX11_LAMBDAS
   442  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
   443  #  undef BOOST_NO_CXX11_LAMBDAS
   444  #endif
   445  
   446  // BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
   447  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500))
   448  #  undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
   449  #endif
   450  
   451  // BOOST_NO_CXX11_RANGE_BASED_FOR
   452  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
   453  #  undef BOOST_NO_CXX11_RANGE_BASED_FOR
   454  #endif
   455  
   456  // BOOST_NO_CXX11_RAW_LITERALS
   457  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   458  #  undef BOOST_NO_CXX11_RAW_LITERALS
   459  #endif
   460  
   461  // BOOST_NO_CXX11_UNICODE_LITERALS
   462  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
   463  #  undef BOOST_NO_CXX11_UNICODE_LITERALS
   464  #endif
   465  
   466  // BOOST_NO_CXX11_NOEXCEPT
   467  #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
   468  // Available in earlier Intel release, but generates errors when used with 
   469  // conditional exception specifications, for example in multiprecision:
   470  #  undef BOOST_NO_CXX11_NOEXCEPT
   471  #endif
   472  
   473  // BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
   474  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
   475  #  undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
   476  #endif
   477  
   478  // BOOST_NO_CXX11_USER_DEFINED_LITERALS
   479  #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
   480  #  undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
   481  #endif
   482  
   483  // BOOST_NO_CXX11_ALIGNAS
   484  #if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
   485  #  undef BOOST_NO_CXX11_ALIGNAS
   486  #  undef BOOST_NO_CXX11_ALIGNOF
   487  #endif
   488  
   489  // BOOST_NO_CXX11_TRAILING_RESULT_TYPES
   490  #if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
   491  #  undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
   492  #endif
   493  
   494  // BOOST_NO_CXX11_INLINE_NAMESPACES
   495  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
   496  #  undef BOOST_NO_CXX11_INLINE_NAMESPACES
   497  #endif
   498  
   499  // BOOST_NO_CXX11_REF_QUALIFIERS
   500  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
   501  #  undef BOOST_NO_CXX11_REF_QUALIFIERS
   502  #endif
   503  
   504  // BOOST_NO_CXX11_FINAL
   505  // BOOST_NO_CXX11_OVERRIDE
   506  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
   507  #  undef BOOST_NO_CXX11_FINAL
   508  #  undef BOOST_NO_CXX11_OVERRIDE
   509  #endif
   510  
   511  // BOOST_NO_CXX11_UNRESTRICTED_UNION
   512  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 50100)) && (!defined(_MSC_VER))
   513  #  undef BOOST_NO_CXX11_UNRESTRICTED_UNION
   514  #endif
   515  
   516  #endif // defined(BOOST_INTEL_STDCXX0X)
   517  
   518  //
   519  // Broken in all versions up to 15:
   520  #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
   521  
   522  #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
   523  #  define BOOST_NO_CXX11_HDR_FUTURE
   524  #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   525  #endif
   526  
   527  #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
   528  // A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
   529  #  define BOOST_NO_CXX11_HDR_FUTURE
   530  #  define BOOST_NO_CXX11_HDR_TUPLE
   531  #endif
   532  
   533  #if (BOOST_INTEL_CXX_VERSION < 1200)
   534  //
   535  // fenv.h appears not to work with Intel prior to 12.0:
   536  //
   537  #  define BOOST_NO_FENV_H
   538  #endif
   539  
   540  // Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
   541  // producing the following errors:
   542  // error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
   543  #if (BOOST_INTEL_CXX_VERSION <= 1310)
   544  #  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
   545  #endif
   546  
   547  #if defined(_MSC_VER) && (_MSC_VER >= 1600)
   548  #  define BOOST_HAS_STDINT_H
   549  #endif
   550  
   551  #if defined(__CUDACC__)
   552  #  if defined(BOOST_GCC_CXX11)
   553  #    define BOOST_NVCC_CXX11
   554  #  else
   555  #    define BOOST_NVCC_CXX03
   556  #  endif
   557  #endif
   558  
   559  #if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(BOOST_NVCC_CXX03)
   560  #  define BOOST_HAS_INT128
   561  #endif
   562  
   563  #endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
   564  //
   565  // last known and checked version:
   566  #if (BOOST_INTEL_CXX_VERSION > 1700)
   567  #  if defined(BOOST_ASSERT_CONFIG)
   568  #     error "Boost.Config is older than your compiler - please check for an updated Boost release."
   569  #  elif defined(_MSC_VER)
   570  //
   571  //      We don't emit this warning any more, since we have so few
   572  //      defect macros set anyway (just the one).
   573  //
   574  //#     pragma message("boost: Unknown compiler version - please run the configure tests and report the results")
   575  #  endif
   576  #endif
   577