intel.hpp gecode/third-party/boost/config/compiler/common_edg.hpp BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) BOOST_INTEL BOOST_INTEL_CXX_VERSION BOOST_INTEL_LINUX BOOST_INTEL BOOST_NO_INTRINSIC_WCHAR_T BOOST_NO_TWO_PHASE_NAME_LOOKUP BOOST_NO_FENV_H //(C)CopyrightJohnMaddock2001-8. //(C)CopyrightPeterDimov2001. //(C)CopyrightJensMaurer2001. //(C)CopyrightDavidAbrahams2002-2003. //(C)CopyrightAlekseyGurtovoy2002-2003. //(C)CopyrightGuillaumeMelquiond2002-2003. //(C)CopyrightBemanDawes2003. //(C)CopyrightMartinWille2003. //Use,modificationanddistributionaresubjecttothe //BoostSoftwareLicense,Version1.0.(Seeaccompanyingfile //LICENSE_1_0.txtorcopyathttp://www.boost.org/LICENSE_1_0.txt) //Seehttp://www.boost.orgformostrecentversion. //Intelcompilersetup: #include"gecode/third-party/boost/config/compiler/common_edg.hpp" #ifdefined(__INTEL_COMPILER) #defineBOOST_INTEL_CXX_VERSION__INTEL_COMPILER #elifdefined(__ICL) #defineBOOST_INTEL_CXX_VERSION__ICL #elifdefined(__ICC) #defineBOOST_INTEL_CXX_VERSION__ICC #elifdefined(__ECC) #defineBOOST_INTEL_CXX_VERSION__ECC #endif //Flagsdeterminedbycomparingoutputof'icpc-dM-E'withandwithout'-std=c++0x' #if(!(defined(_WIN32)||defined(_WIN64))&&defined(__STDC_HOSTED__)&&__STDC_HOSTED__)||defined(__GXX_EXPERIMENTAL_CPP0X__) #defineBOOST_INTEL_STDCXX0X #endif #ifdefined(_MSC_VER)&&(_MSC_VER>=1600) #defineBOOST_INTEL_STDCXX0X #endif #ifdefBOOST_INTEL_STDCXX0X #defineBOOST_COMPILER"IntelC++C++0xmodeversion"BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) #else #defineBOOST_COMPILER"IntelC++version"BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) #endif #defineBOOST_INTELBOOST_INTEL_CXX_VERSION #ifdefined(_WIN32)||defined(_WIN64) #defineBOOST_INTEL_WINBOOST_INTEL #else #defineBOOST_INTEL_LINUXBOOST_INTEL #endif #if(BOOST_INTEL_CXX_VERSION<=500)&&defined(_MSC_VER) #defineBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS #defineBOOST_NO_TEMPLATE_TEMPLATES #endif #if(BOOST_INTEL_CXX_VERSION<=600) #ifdefined(_MSC_VER)&&(_MSC_VER<=1300)//addedcheckfor<=VC7(PeterDimov) //Boostlibrariesassumestrongstandardconformanceunlessotherwise //indicatedbyaconfigmacro.AsconfiguredbyIntel,theEDGfront-end //requirescertaincompileroptionsbesettoachievethatstrongconformance. //Particularly/Qoption,c,--arg_dep_lookup(reportedbyKirkKlobe&ThomasWitt) //and/Zc:wchar_t,forScope.Seeboost-root/tools/build/intel-win32-tools.jamfor //detailsastheyapplytoparticularversionsofthecompiler.Whenthe //compilerdoesnotpredefineamacroindicatingifanoptionhasbeenset, //thisconfigfilesimplyassumestheoptionhasbeenset. //ThusBOOST_NO_ARGUMENT_DEPENDENT_LOOKUPwillnotbedefined,evenif //thecompileroptionisnotenabled. #defineBOOST_NO_SWPRINTF #endif //Voidreturns,64bitintegralsdon'tworkwhenemulatingVC6(PeterDimov) #ifdefined(_MSC_VER)&&(_MSC_VER<=1200) #defineBOOST_NO_VOID_RETURNS #defineBOOST_NO_INTEGRAL_INT64_T #endif #endif #if(BOOST_INTEL_CXX_VERSION<=710)&&defined(_WIN32) #defineBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS #endif //Seehttp://aspn.activestate.com/ASPN/Mail/Message/boost/1614864 #ifBOOST_INTEL_CXX_VERSION<600 #defineBOOST_NO_INTRINSIC_WCHAR_T #else //Weshouldtestthemacro_WCHAR_T_DEFINEDtocheckifthecompiler //supportswchar_tnatively.*BUT*thereisaproblemhere:thestandard //headersdefinethismacroiftheytypedefwchar_t.Anyway,we'relucky //becausetheydefineitwithoutavalue,whileIntelC++definesit //to1.Sowecancheckitsvaluetoseeifthemacrowasdefinednatively //ornot. //UnderUNIX,thesituationisexactlythesame,butthemacro_WCHAR_T //isusedinstead. #if((_WCHAR_T_DEFINED+0)==0)&&((_WCHAR_T+0)==0) #defineBOOST_NO_INTRINSIC_WCHAR_T #endif #endif #ifdefined(__GNUC__)&&!defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) // //FigureoutwhenIntelisemulatingthisgccbug //(AllIntelversionspriorto9.0.26,andversions //laterthanthatiftheyaresetuptoemulategcc3.2 //orearlier): // #if((__GNUC__==3)&&(__GNUC_MINOR__<=2))||(BOOST_INTEL<900)||(__INTEL_COMPILER_BUILD_DATE<20050912) #defineBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL #endif #endif #if(defined(__GNUC__)&&(__GNUC__<4))||defined(_WIN32)||(BOOST_INTEL_CXX_VERSION<=1200) //GCCorVCemulation: #defineBOOST_NO_TWO_PHASE_NAME_LOOKUP #endif // //VerifythatwehaveactuallygotBOOST_NO_INTRINSIC_WCHAR_T //setcorrectly,ifwedon'tdothisnow,wewillgeterrorslater //intype_traitscodeamongotherthings,gettingthiscorrect //fortheIntelcompilerisactuallyremarkablyfragileandtricky: // #ifdef__cplusplus #ifdefined(BOOST_NO_INTRINSIC_WCHAR_T) #include<cwchar> template<typenameT>structassert_no_intrinsic_wchar_t; template<>structassert_no_intrinsic_wchar_t<wchar_t>{typedefvoidtype;}; //ifyouseeanerrorherethenyouneedtounsetBOOST_NO_INTRINSIC_WCHAR_T //whereitisdefinedabove: typedefassert_no_intrinsic_wchar_t<unsignedshort>::typeassert_no_intrinsic_wchar_t_; #else template<typenameT>structassert_intrinsic_wchar_t; template<>structassert_intrinsic_wchar_t<wchar_t>{}; //ifyouseeanerrorherethendefineBOOST_NO_INTRINSIC_WCHAR_Tonthecommandline: template<>structassert_intrinsic_wchar_t<unsignedshort>{}; #endif #endif #ifdefined(_MSC_VER)&&(_MSC_VER+0>=1000) #if_MSC_VER>=1200 #defineBOOST_HAS_MS_INT64 #endif #defineBOOST_NO_SWPRINTF #defineBOOST_NO_TWO_PHASE_NAME_LOOKUP #elifdefined(_WIN32) #defineBOOST_DISABLE_WIN32 #endif //Icheckedversion6.0build020312Z,itimplementstheNRVO. //Correctthisasyoufindoutwhichversionofthecompiler //implementedtheNRVOfirst.(DanielFrey) #if(BOOST_INTEL_CXX_VERSION>=600) #defineBOOST_HAS_NRVO #endif // //versionscheck: //wedon'tsupportIntelpriortoversion5.0: #ifBOOST_INTEL_CXX_VERSION<500 #error"Compilernotsupportedorconfigured-pleasereconfigure" #endif //IntelonMacOSrequires #ifdefined(__APPLE__)&&defined(__INTEL_COMPILER) #defineBOOST_NO_TWO_PHASE_NAME_LOOKUP #endif //IntelonAltixItanium #ifdefined(__itanium__)&&defined(__INTEL_COMPILER) #defineBOOST_NO_TWO_PHASE_NAME_LOOKUP #endif // //Anattempttovalue-initializeapointer-to-membermaytriggeran //internalerroronIntel<=11.1(lastcheckedversion),aswas //reportedbyJohnMaddock,Intelsupportissue589832,May2010. //Moreover,accordingtotestresultsfromHuang-Vista-x86_32_intel, //intel-vc9-win-11.1mayleaveanon-PODarrayuninitialized,insome //caseswhenitshouldbevalue-initialized. //(NielsDekker,LKEB,May2010) #ifdefined(__INTEL_COMPILER) #if__INTEL_COMPILER<=1110 #defineBOOST_NO_COMPLETE_VALUE_INITIALIZATION #endif #endif // //Dynamicsharedobject(DSO)anddynamic-linklibrary(DLL)support // #ifdefined(__GNUC__)&&(__GNUC__>=4) #defineBOOST_SYMBOL_EXPORT__attribute__((visibility("default"))) #defineBOOST_SYMBOL_IMPORT #defineBOOST_SYMBOL_VISIBLE__attribute__((visibility("default"))) #endif // //C++0xfeatures //-ICCaddedstatic_assertin11.0(firstversionwithC++0xsupport) // #ifdefined(BOOST_INTEL_STDCXX0X) #undefBOOST_NO_STATIC_ASSERT // //Thesepassourtestcases,butaren'tofficiallysupportedaccordingto: //http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ // //#undefBOOST_NO_LAMBDAS //#undefBOOST_NO_DECLTYPE //#undefBOOST_NO_AUTO_DECLARATIONS //#undefBOOST_NO_AUTO_MULTIDECLARATIONS #endif #ifdefined(BOOST_INTEL_STDCXX0X)&&(BOOST_INTEL_CXX_VERSION>=1200) #undefBOOST_NO_RVALUE_REFERENCES //#undefBOOST_NO_SCOPED_ENUMS//doesn'treallywork!! #undefBOOST_NO_DELETED_FUNCTIONS #undefBOOST_NO_DEFAULTED_FUNCTIONS #undefBOOST_NO_LAMBDAS #undefBOOST_NO_DECLTYPE #undefBOOST_NO_AUTO_DECLARATIONS #undefBOOST_NO_AUTO_MULTIDECLARATIONS #endif #if(BOOST_INTEL_CXX_VERSION<1200) // //fenv.happearsnottoworkwithIntelpriorto12.0: // #defineBOOST_NO_FENV_H #endif // //lastknownandcheckedversion: #if(BOOST_INTEL_CXX_VERSION>1200) #ifdefined(BOOST_ASSERT_CONFIG) #error"Unknowncompilerversion-pleaseruntheconfiguretestsandreporttheresults" #elifdefined(_MSC_VER) // //Wedon'temitthiswarninganymore,sincewehavesofew //defectmacrossetanyway(justtheone). // //#pragmamessage("Unknowncompilerversion-pleaseruntheconfiguretestsandreporttheresults") #endif #endif