suffix.hpp limits.h /usr/include/gecode/third-party/boost/config.hpp BOOST_SYMBOL_EXPORT BOOST_SYMBOL_IMPORT BOOST_SYMBOL_VISIBLE BOOST_NO_LONG_LONG BOOST_STD_EXTENSION_NAMESPACE std BOOST_NO_LONG_LONG_NUMERIC_LIMITS BOOST_HAS_STATIC_ASSERT BOOST_NO_MS_INT64_NUMERIC_LIMITS BOOST_MSVC6_MEMBER_TEMPLATES BOOST_HAS_PARTIAL_STD_ALLOCATOR BOOST_NO_SLIST BOOST_NO_HASH BOOST_HAS_RVALUE_REFS BOOST_HAS_VARIADIC_TMPL BOOST_PREVENT_MACRO_SUBSTITUTION BOOST_USING_STD_MIN using std::min BOOST_USING_STD_MAX using std::max BOOST_STATIC_CONSTANT type assignment static const type assignment BOOST_USE_FACET Type loc std::use_facet< Type >(loc) BOOST_HAS_FACET Type loc std::has_facet< Type >(loc) BOOST_NESTED_TEMPLATE template BOOST_UNREACHABLE_RETURN x BOOST_DEDUCED_TYPENAME typename BOOST_CTOR_TYPENAME typename BOOST_EXPLICIT_TEMPLATE_TYPE t BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC t BOOST_EXPLICIT_TEMPLATE_NON_TYPE t v BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC t v BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE t BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC t BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE t v BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC t v BOOST_STRINGIZE X BOOST_DO_STRINGIZE(X) BOOST_DO_STRINGIZE X #X BOOST_JOIN X Y BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN X Y BOOST_DO_JOIN2(X,Y) BOOST_DO_JOIN2 X Y X##Y BOOST_COMPILER "Unknown ISO C++ Compiler" BOOST_STDLIB "Unknown ISO standard library" BOOST_PLATFORM "Unknown" BOOST_GPU_ENABLED BOOST_CONSTEXPR constexpr BOOST_CONSTEXPR_OR_CONST constexpr BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST //Boostconfig.hppconfigurationheaderfile------------------------------// //Copyright(c)2001-2003JohnMaddock //Copyright(c)2001DarinAdler //Copyright(c)2001PeterDimov //Copyright(c)2002BillKempf //Copyright(c)2002JensMaurer //Copyright(c)2002-2003DavidAbrahams //Copyright(c)2003GennaroProta //Copyright(c)2003EricFriedman //Copyright(c)2010EricJourdanneau,JoelFalcou //DistributedundertheBoostSoftwareLicense,Version1.0.(See //accompanyingfileLICENSE_1_0.txtorcopyat //http://www.boost.org/LICENSE_1_0.txt) //Seehttp://www.boost.org/formostrecentversion. //Boostconfig.hpppolicyandrationaledocumentationhasbeenmovedto //http://www.boost.org/libs/config/ // //Thisfileisintendedtobestable,andrelativelyunchanging. //Itshouldcontainboilerplatecodeonly-nocompilerspecific //codeunlessitisunavoidable-nochangesunlessunavoidable. #ifndefBOOST_CONFIG_SUFFIX_HPP #defineBOOST_CONFIG_SUFFIX_HPP #ifdefined(__GNUC__)&&(__GNUC__>=4) // //SomeGCC-4.xversionsissuewarningsevenwhen__extension__isused, //sousethisasaworkaround: // #pragmaGCCsystem_header #endif // //ensurethatvisibilitymacrosarealwaysdefined,thussymplifyinguse // #ifndefBOOST_SYMBOL_EXPORT #defineBOOST_SYMBOL_EXPORT #endif #ifndefBOOST_SYMBOL_IMPORT #defineBOOST_SYMBOL_IMPORT #endif #ifndefBOOST_SYMBOL_VISIBLE #defineBOOST_SYMBOL_VISIBLE #endif // //lookforlonglongbylookingfortheappropriatemacrosin<limits.h>. //Notethatweuselimits.hratherthanclimitsformaximalportability, //rememberthatsincethesejustdeclareabunchofmacros,thereshouldbe //nonamespaceissuesfromthis. // #if!defined(BOOST_HAS_LONG_LONG)&&!defined(BOOST_NO_LONG_LONG)\ &&!defined(BOOST_MSVC)&&!defined(__BORLANDC__) #include<limits.h> #if(defined(ULLONG_MAX)||defined(ULONG_LONG_MAX)||defined(ULONGLONG_MAX)) #defineBOOST_HAS_LONG_LONG #else #defineBOOST_NO_LONG_LONG #endif #endif //GCC3.xwillcleanupallofthosenastymacrodefinitionsthat //BOOST_NO_CTYPE_FUNCTIONSisintendedtohelpworkaround,soundefine //itunderGCC3.x. #ifdefined(__GNUC__)&&(__GNUC__>=3)&&defined(BOOST_NO_CTYPE_FUNCTIONS) #undefBOOST_NO_CTYPE_FUNCTIONS #endif // //Assumeanyextensionsareinnamespacestd::unlessstatedotherwise: // #ifndefBOOST_STD_EXTENSION_NAMESPACE #defineBOOST_STD_EXTENSION_NAMESPACEstd #endif // //Ifcv-qualifiedspecializationsarenotallowed,thenneitherarecv-voidones: // #ifdefined(BOOST_NO_CV_SPECIALIZATIONS)\ &&!defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) #defineBOOST_NO_CV_VOID_SPECIALIZATIONS #endif // //Ifthereisnonumeric_limitstemplate,thenitcan'thaveanycompiletime //constantseither! // #ifdefined(BOOST_NO_LIMITS)\ &&!defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) #defineBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS #defineBOOST_NO_MS_INT64_NUMERIC_LIMITS #defineBOOST_NO_LONG_LONG_NUMERIC_LIMITS #endif // //ifthereisnolonglongthenthereisnospecialisation //fornumeric_limits<longlong>either: // #if!defined(BOOST_HAS_LONG_LONG)&&!defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS) #defineBOOST_NO_LONG_LONG_NUMERIC_LIMITS #endif // //NormalizeBOOST_NO_STATIC_ASSERTand(depricated)BOOST_HAS_STATIC_ASSERT: // #if!defined(BOOST_NO_STATIC_ASSERT)&&!defined(BOOST_HAS_STATIC_ASSERT) #defineBOOST_HAS_STATIC_ASSERT #endif // //ifthereisno__int64thenthereisnospecialisation //fornumeric_limits<__int64>either: // #if!defined(BOOST_HAS_MS_INT64)&&!defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS) #defineBOOST_NO_MS_INT64_NUMERIC_LIMITS #endif // //ifmembertemplatesaresupportedthensoisthe //VC6subsetofmembertemplates: // #if!defined(BOOST_NO_MEMBER_TEMPLATES)\ &&!defined(BOOST_MSVC6_MEMBER_TEMPLATES) #defineBOOST_MSVC6_MEMBER_TEMPLATES #endif // //Withoutpartialspecialization,can'ttestforpartialspecialisationbugs: // #ifdefined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\ &&!defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) #defineBOOST_BCB_PARTIAL_SPECIALIZATION_BUG #endif // //Withoutpartialspecialization,wecan'thavearray-typepartialspecialisations: // #ifdefined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\ &&!defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) #defineBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS #endif // //Withoutpartialspecialization,std::iterator_traitscan'twork: // #ifdefined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\ &&!defined(BOOST_NO_STD_ITERATOR_TRAITS) #defineBOOST_NO_STD_ITERATOR_TRAITS #endif // //Withoutpartialspecialization,partial //specializationwithdefaultargswon'tworkeither: // #ifdefined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\ &&!defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS) #defineBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS #endif // //Withoutmembertemplatesupport,wecan'thavetemplateconstructors //inthestandardlibraryeither: // #ifdefined(BOOST_NO_MEMBER_TEMPLATES)\ &&!defined(BOOST_MSVC6_MEMBER_TEMPLATES)\ &&!defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) #defineBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS #endif // //Withoutmembertemplatesupport,wecan'thaveaconforming //std::allocatortemplateeither: // #ifdefined(BOOST_NO_MEMBER_TEMPLATES)\ &&!defined(BOOST_MSVC6_MEMBER_TEMPLATES)\ &&!defined(BOOST_NO_STD_ALLOCATOR) #defineBOOST_NO_STD_ALLOCATOR #endif // //withoutADLsupportthenusingdeclarationswillbreakADLaswell: // #ifdefined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)&&!defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) #defineBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL #endif // //WithouttypeidsupportwehavenodynamicRTTIeither: // #ifdefined(BOOST_NO_TYPEID)&&!defined(BOOST_NO_RTTI) #defineBOOST_NO_RTTI #endif // //Ifwehaveastandardallocator,thenwehaveapartialoneaswell: // #if!defined(BOOST_NO_STD_ALLOCATOR) #defineBOOST_HAS_PARTIAL_STD_ALLOCATOR #endif // //Wecan'thaveaworkingstd::use_facetifthereisnostd::locale: // #ifdefined(BOOST_NO_STD_LOCALE)&&!defined(BOOST_NO_STD_USE_FACET) #defineBOOST_NO_STD_USE_FACET #endif // //Wecan'thaveastd::messagesfacetifthereisnostd::locale: // #ifdefined(BOOST_NO_STD_LOCALE)&&!defined(BOOST_NO_STD_MESSAGES) #defineBOOST_NO_STD_MESSAGES #endif // //Wecan'thaveaworkingstd::wstreambufifthereisnostd::locale: // #ifdefined(BOOST_NO_STD_LOCALE)&&!defined(BOOST_NO_STD_WSTREAMBUF) #defineBOOST_NO_STD_WSTREAMBUF #endif // //Wecan'thavea<cwctype>ifthereisno<cwchar>: // #ifdefined(BOOST_NO_CWCHAR)&&!defined(BOOST_NO_CWCTYPE) #defineBOOST_NO_CWCTYPE #endif // //Wecan'thaveaswprintfifthereisno<cwchar>: // #ifdefined(BOOST_NO_CWCHAR)&&!defined(BOOST_NO_SWPRINTF) #defineBOOST_NO_SWPRINTF #endif // //IfWin32supportisturnedoff,thenwemustturnoff //threadingsupportalso,unlessthereissomeother //threadAPIenabled: // #ifdefined(BOOST_DISABLE_WIN32)&&defined(_WIN32)\ &&!defined(BOOST_DISABLE_THREADS)&&!defined(BOOST_HAS_PTHREADS) #defineBOOST_DISABLE_THREADS #endif // //Turnonthreadingsupportifthecompilerthinksthatit'sin //multithreadedmode.Weputthisherebecausethereareonlya //limitednumberofmacrosthatidentifythis(ifthere'sanymissing //fromherethenaddtotheappropriatecompilersection): // #if(defined(__MT__)||defined(_MT)||defined(_REENTRANT)\ ||defined(_PTHREADS)||defined(__APPLE__)||defined(__DragonFly__))\ &&!defined(BOOST_HAS_THREADS) #defineBOOST_HAS_THREADS #endif // //TurnthreadingsupportoffifBOOST_DISABLE_THREADSisdefined: // #ifdefined(BOOST_DISABLE_THREADS)&&defined(BOOST_HAS_THREADS) #undefBOOST_HAS_THREADS #endif // //Turnthreadingsupportoffifwedon'trecognisethethreadingAPI: // #ifdefined(BOOST_HAS_THREADS)&&!defined(BOOST_HAS_PTHREADS)\ &&!defined(BOOST_HAS_WINTHREADS)&&!defined(BOOST_HAS_BETHREADS)\ &&!defined(BOOST_HAS_MPTASKS) #undefBOOST_HAS_THREADS #endif // //Turnthreadingdetailmacrosoffifwedon't(wantto)usethreading // #ifndefBOOST_HAS_THREADS #undefBOOST_HAS_PTHREADS #undefBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE #undefBOOST_HAS_PTHREAD_YIELD #undefBOOST_HAS_PTHREAD_DELAY_NP #undefBOOST_HAS_WINTHREADS #undefBOOST_HAS_BETHREADS #undefBOOST_HAS_MPTASKS #endif // //IfthecompilerclaimstobeC99conformant,thenithadbetter //havea<stdint.h>: // #ifdefined(__STDC_VERSION__)&&(__STDC_VERSION__>=199901) #defineBOOST_HAS_STDINT_H #ifndefBOOST_HAS_LOG1P #defineBOOST_HAS_LOG1P #endif #ifndefBOOST_HAS_EXPM1 #defineBOOST_HAS_EXPM1 #endif #endif // //DefineBOOST_NO_SLISTandBOOST_NO_HASHifrequired. //Notethatthisisforbackwardscompatibilityonly. // #if!defined(BOOST_HAS_SLIST)&&!defined(BOOST_NO_SLIST) #defineBOOST_NO_SLIST #endif #if!defined(BOOST_HAS_HASH)&&!defined(BOOST_NO_HASH) #defineBOOST_NO_HASH #endif // //SetBOOST_SLIST_HEADERifnotsetalready: // #ifdefined(BOOST_HAS_SLIST)&&!defined(BOOST_SLIST_HEADER) #defineBOOST_SLIST_HEADER<slist> #endif // //SetBOOST_HASH_SET_HEADERifnotsetalready: // #ifdefined(BOOST_HAS_HASH)&&!defined(BOOST_HASH_SET_HEADER) #defineBOOST_HASH_SET_HEADER<hash_set> #endif // //SetBOOST_HASH_MAP_HEADERifnotsetalready: // #ifdefined(BOOST_HAS_HASH)&&!defined(BOOST_HASH_MAP_HEADER) #defineBOOST_HASH_MAP_HEADER<hash_map> #endif // //SetBOOST_NO_INITIALIZER_LISTSifthereisnolibrarysupport. // #ifdefined(BOOST_NO_0X_HDR_INITIALIZER_LIST)&&!defined(BOOST_NO_INITIALIZER_LISTS) #defineBOOST_NO_INITIALIZER_LISTS #endif #ifdefined(BOOST_NO_INITIALIZER_LISTS)&&!defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) #defineBOOST_NO_0X_HDR_INITIALIZER_LIST #endif // //SetBOOST_HAS_RVALUE_REFSwhenBOOST_NO_RVALUE_REFERENCESisnotdefined // #if!defined(BOOST_NO_RVALUE_REFERENCES)&&!defined(BOOST_HAS_RVALUE_REFS) #defineBOOST_HAS_RVALUE_REFS #endif // //SetBOOST_HAS_VARIADIC_TMPLwhenBOOST_NO_VARIADIC_TEMPLATESisnotdefined // #if!defined(BOOST_NO_VARIADIC_TEMPLATES)&&!defined(BOOST_HAS_VARIADIC_TMPL) #defineBOOST_HAS_VARIADIC_TMPL #endif //BOOST_HAS_ABI_HEADERS //ThismacrogetssetifwehaveheadersthatfixtheABI, //andpreventODRviolationswhenlinkingtoexternallibraries: #ifdefined(BOOST_ABI_PREFIX)&&defined(BOOST_ABI_SUFFIX)&&!defined(BOOST_HAS_ABI_HEADERS) #defineBOOST_HAS_ABI_HEADERS #endif #ifdefined(BOOST_HAS_ABI_HEADERS)&&defined(BOOST_DISABLE_ABI_HEADERS) #undefBOOST_HAS_ABI_HEADERS #endif //BOOST_NO_STDC_NAMESPACEworkaround--------------------------------------// //Becausestd::size_tusageissocommon,eveninboostheaderswhichdonot //otherwiseusetheClibrary,the<cstddef>workaroundisincludedhereso //thatuglyworkaroundcodeneednotappearinmanyotherboostheaders. //NOTEWELL:Thisisaworkaroundfornon-conformingcompilers;<cstddef> //muststillbe#includedintheusualplacessothat<cstddef>inclusion //worksasexpectedwithstandardconformingcompilers.Theresulting //doubleinclusionof<cstddef>isharmless. #ifdefined(BOOST_NO_STDC_NAMESPACE)&&defined(__cplusplus) #include<cstddef> namespacestd{using::ptrdiff_t;using::size_t;} #endif //Workaroundfortheunfortunatemin/maxmacrosdefinedbysomeplatformheaders #defineBOOST_PREVENT_MACRO_SUBSTITUTION #ifndefBOOST_USING_STD_MIN #defineBOOST_USING_STD_MIN()usingstd::min #endif #ifndefBOOST_USING_STD_MAX #defineBOOST_USING_STD_MAX()usingstd::max #endif //BOOST_NO_STD_MIN_MAXworkaround-----------------------------------------// #ifdefined(BOOST_NO_STD_MIN_MAX)&&defined(__cplusplus) namespacestd{ template<class_Tp> inlineconst_Tp&minBOOST_PREVENT_MACRO_SUBSTITUTION(const_Tp&__a,const_Tp&__b){ return__b<__a?__b:__a; } template<class_Tp> inlineconst_Tp&maxBOOST_PREVENT_MACRO_SUBSTITUTION(const_Tp&__a,const_Tp&__b){ return__a<__b?__b:__a; } } #endif //BOOST_STATIC_CONSTANTworkaround---------------------------------------// //Oncompilerswhichdon'tallowin-classinitializationofstaticintegral //constantmembers,wemustuseenumsasaworkaroundifwewanttheconstants //tobeavailableatcompile-time.Thismacrogivesusaconvenientwayto //declaresuchconstants. #ifdefBOOST_NO_INCLASS_MEMBER_INITIALIZATION #defineBOOST_STATIC_CONSTANT(type,assignment)enum{assignment} #else #defineBOOST_STATIC_CONSTANT(type,assignment)staticconsttypeassignment #endif //BOOST_USE_FACET/HAS_FACETworkaround----------------------------------// //Whenthestandardlibrarydoesnothaveaconformingstd::use_facetthere //arevariousworkaroundsavailable,buttheydifferfromlibrarytolibrary. //Thesameproblemoccurswithhas_facet. //Thesemacrosprovideaconsistentwaytoaccessalocale'sfacets. //Usage: //replace //std::use_facet<Type>(loc); //with //BOOST_USE_FACET(Type,loc); //Notedonotaddastd::prefixtothefrontofBOOST_USE_FACET! //UseforBOOST_HAS_FACETisanalogous. #ifdefined(BOOST_NO_STD_USE_FACET) #ifdefBOOST_HAS_TWO_ARG_USE_FACET #defineBOOST_USE_FACET(Type,loc)std::use_facet(loc,static_cast<Type*>(0)) #defineBOOST_HAS_FACET(Type,loc)std::has_facet(loc,static_cast<Type*>(0)) #elifdefined(BOOST_HAS_MACRO_USE_FACET) #defineBOOST_USE_FACET(Type,loc)std::_USE(loc,Type) #defineBOOST_HAS_FACET(Type,loc)std::_HAS(loc,Type) #elifdefined(BOOST_HAS_STLP_USE_FACET) #defineBOOST_USE_FACET(Type,loc)(*std::_Use_facet<Type>(loc)) #defineBOOST_HAS_FACET(Type,loc)std::has_facet<Type>(loc) #endif #else #defineBOOST_USE_FACET(Type,loc)std::use_facet<Type>(loc) #defineBOOST_HAS_FACET(Type,loc)std::has_facet<Type>(loc) #endif //BOOST_NESTED_TEMPLATEworkaround------------------------------------------// //Membertemplatesaresupportedbysomecompilerseventhoughtheycan'tuse //theA::templatemember<U>syntax,asaworkaroundreplace: // //typedeftypenameA::templaterebind<U>binder; // //with: // //typedeftypenameA::BOOST_NESTED_TEMPLATErebind<U>binder; #ifndefBOOST_NO_MEMBER_TEMPLATE_KEYWORD #defineBOOST_NESTED_TEMPLATEtemplate #else #defineBOOST_NESTED_TEMPLATE #endif //BOOST_UNREACHABLE_RETURN(x)workaround-------------------------------------// //Normallyevaluatestonothing,unlessBOOST_NO_UNREACHABLE_RETURN_DETECTION //isdefined,inwhichcaseitevaluatestoreturnx;Usewhenyouhaveareturn //statementthatcanneverbereached. #ifdefBOOST_NO_UNREACHABLE_RETURN_DETECTION #defineBOOST_UNREACHABLE_RETURN(x)returnx; #else #defineBOOST_UNREACHABLE_RETURN(x) #endif //BOOST_DEDUCED_TYPENAMEworkaround------------------------------------------// // //Somecompilersdon'tsupporttheuseof`typename'fordependent //typesindeducedcontexts,e.g. // //template<classT>voidf(T,typenameT::type); //^^^^^^^^ //Replacethesedeclarationswith: // //template<classT>voidf(T,BOOST_DEDUCED_TYPENAMET::type); #ifndefBOOST_NO_DEDUCED_TYPENAME #defineBOOST_DEDUCED_TYPENAMEtypename #else #defineBOOST_DEDUCED_TYPENAME #endif #ifndefBOOST_NO_TYPENAME_WITH_CTOR #defineBOOST_CTOR_TYPENAMEtypename #else #defineBOOST_CTOR_TYPENAME #endif //longlongworkaround------------------------------------------// //Ongcc(andmaybeothercompilers?)longlongisalwaysupported //butit'susemaygenerateeitherwarnings(with-ansi),orerrors //(with-pedantic-ansi)unlessit'suseisprefixedby__extension__ // #ifdefined(BOOST_HAS_LONG_LONG)&&defined(__cplusplus) namespaceboost{ #ifdef__GNUC__ __extension__typedeflonglonglong_long_type; __extension__typedefunsignedlonglongulong_long_type; #else typedeflonglonglong_long_type; typedefunsignedlonglongulong_long_type; #endif } #endif //BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPEmacros--------------------------// // //Somecompilershaveproblemswithfunctiontemplateswhosetemplate //parametersdon'tappearinthefunctionparameterlist(basically //theyjustlinkoneinstantiationofthetemplateinthefinal //executable).Thesemacrosprovideauniformwaytocopewiththe //problemwithnoeffectsonthecallingsyntax. //Example: // //#include<iostream> //#include<ostream> //#include<typeinfo> // //template<intn> //voidf(){std::cout<<n<<'';} // //template<typenameT> //voidg(){std::cout<<typeid(T).name()<<'';} // //intmain(){ //f<1>(); //f<2>(); // //g<int>(); //g<double>(); //} // //WithVC++6.0theoutputis: // //22doubledouble // //Tofixit,write // //template<intn> //voidf(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int,n)){...} // //template<typenameT> //voidg(BOOST_EXPLICIT_TEMPLATE_TYPE(T)){...} // #ifdefined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)&&defined(__cplusplus) #include"gecode/third-party/boost/type.hpp" #include"gecode/third-party/boost/non_type.hpp" #defineBOOST_EXPLICIT_TEMPLATE_TYPE(t)boost::type<t>*=0 #defineBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)boost::type<t>* #defineBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v)boost::non_type<t,v>*=0 #defineBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t,v)boost::non_type<t,v>* #defineBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)\ ,BOOST_EXPLICIT_TEMPLATE_TYPE(t) #defineBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)\ ,BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) #defineBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t,v)\ ,BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v) #defineBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t,v)\ ,BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t,v) #else //noworkaroundneeded:expandtonothing #defineBOOST_EXPLICIT_TEMPLATE_TYPE(t) #defineBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) #defineBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v) #defineBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t,v) #defineBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) #defineBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) #defineBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t,v) #defineBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t,v) #endif//definedBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS //WhenBOOST_NO_STD_TYPEINFOisdefined,wecanjustimport //theglobaldefinitionintostdnamespace: #ifdefined(BOOST_NO_STD_TYPEINFO)&&defined(__cplusplus) #include<typeinfo> namespacestd{using::type_info;} #endif //---------------------------------------------------------------------------// // //HelpermacroBOOST_STRINGIZE: //ConvertstheparameterXtoastringaftermacroreplacement //onXhasbeenperformed. // #defineBOOST_STRINGIZE(X)BOOST_DO_STRINGIZE(X) #defineBOOST_DO_STRINGIZE(X)#X // //HelpermacroBOOST_JOIN: //Thefollowingpieceofmacromagicjoinsthetwo //argumentstogether,evenwhenoneoftheargumentsis //itselfamacro(see16.3.1inC++standard).Thekey //isthatmacroexpansionofmacroargumentsdoesnot //occurinBOOST_DO_JOIN2butdoesinBOOST_DO_JOIN. // #defineBOOST_JOIN(X,Y)BOOST_DO_JOIN(X,Y) #defineBOOST_DO_JOIN(X,Y)BOOST_DO_JOIN2(X,Y) #defineBOOST_DO_JOIN2(X,Y)X##Y // //Setsomedefaultvaluesforcompiler/library/platformnames. //Thesearefordebuggingconfigsetuponly: // #ifndefBOOST_COMPILER #defineBOOST_COMPILER"UnknownISOC++Compiler" #endif #ifndefBOOST_STDLIB #defineBOOST_STDLIB"UnknownISOstandardlibrary" #endif #ifndefBOOST_PLATFORM #ifdefined(unix)||defined(__unix)||defined(_XOPEN_SOURCE)\ ||defined(_POSIX_SOURCE) #defineBOOST_PLATFORM"GenericUnix" #else #defineBOOST_PLATFORM"Unknown" #endif #endif // //SetsomedefaultvaluesGPUsupport // #ifndefBOOST_GPU_ENABLED #defineBOOST_GPU_ENABLED #endif // //constexprworkarounds // #ifdefined(BOOST_NO_CONSTEXPR) #defineBOOST_CONSTEXPR #defineBOOST_CONSTEXPR_OR_CONSTconst #else #defineBOOST_CONSTEXPRconstexpr #defineBOOST_CONSTEXPR_OR_CONSTconstexpr #endif #defineBOOST_STATIC_CONSTEXPRstaticBOOST_CONSTEXPR_OR_CONST #endif