libstdcpp3.hpp BOOST_GNU_STDLIB 1 BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__) BOOST_NO_CWCHAR BOOST_NO_CWCTYPE BOOST_NO_STD_WSTRING BOOST_NO_STD_WSTREAMBUF BOOST_NO_0X_HDR_ARRAY BOOST_NO_0X_HDR_REGEX BOOST_NO_0X_HDR_TUPLE BOOST_NO_STD_UNORDERED BOOST_NO_0X_HDR_UNORDERED_MAP BOOST_NO_0X_HDR_UNORDERED_SET BOOST_NO_0X_HDR_CHRONO BOOST_NO_0X_HDR_CONDITION_VARIABLE BOOST_NO_0X_HDR_FORWARD_LIST BOOST_NO_0X_HDR_INITIALIZER_LIST BOOST_NO_0X_HDR_MUTEX BOOST_NO_0X_HDR_RATIO BOOST_NO_0X_HDR_SYSTEM_ERROR BOOST_NO_NUMERIC_LIMITS_LOWEST BOOST_NO_0X_HDR_FUTURE BOOST_NO_0X_HDR_RANDOM BOOST_NO_0X_HDR_TYPEINDEX BOOST_NO_0X_HDR_THREAD BOOST_NO_0X_HDR_TYPE_TRAITS BOOST_NO_0X_HDR_CODECVT //(C)CopyrightJohnMaddock2001. //(C)CopyrightJensMaurer2001. //Use,modificationanddistributionaresubjecttothe //BoostSoftwareLicense,Version1.0.(Seeaccompanyingfile //LICENSE_1_0.txtorcopyathttp://www.boost.org/LICENSE_1_0.txt) //Seehttp://www.boost.orgformostrecentversion. //configforlibstdc++v3 //notmuchtogoinhere: #defineBOOST_GNU_STDLIB1 #ifdef__GLIBCXX__ #defineBOOST_STDLIB"GNUlibstdc++version"BOOST_STRINGIZE(__GLIBCXX__) #else #defineBOOST_STDLIB"GNUlibstdc++version"BOOST_STRINGIZE(__GLIBCPP__) #endif #if!defined(_GLIBCPP_USE_WCHAR_T)&&!defined(_GLIBCXX_USE_WCHAR_T) #defineBOOST_NO_CWCHAR #defineBOOST_NO_CWCTYPE #defineBOOST_NO_STD_WSTRING #defineBOOST_NO_STD_WSTREAMBUF #endif #ifdefined(__osf__)&&!defined(_REENTRANT)\ &&(defined(_GLIBCXX_HAVE_GTHR_DEFAULT)||defined(_GLIBCPP_HAVE_GTHR_DEFAULT)) //GCC3onTru64forcesthedefinitionof_REENTRANTwhenanystdlibheader //fileisincluded,thereforeforconsistencywedefineithereaswell. #define_REENTRANT #endif #ifdef__GLIBCXX__//gcc3.4andgreater: #ifdefined(_GLIBCXX_HAVE_GTHR_DEFAULT)\ ||defined(_GLIBCXX__PTHREADS)\ ||defined(_GLIBCXX_HAS_GTHREADS)\ ||defined(_WIN32) // //Ifthestdlibhasthreadsupportturnedon,thenturnitoninBoost //aswell.Wedothisbecausesomegcc-3.4stdlibheadersdefine_REENTANT //whileothersdonot... // #defineBOOST_HAS_THREADS #else #defineBOOST_DISABLE_THREADS #endif #elifdefined(__GLIBCPP__)\ &&!defined(_GLIBCPP_HAVE_GTHR_DEFAULT)\ &&!defined(_GLIBCPP__PTHREADS) //disablethreadsupportifthestdlibwasbuiltsinglethreaded: #defineBOOST_DISABLE_THREADS #endif #if(defined(linux)||defined(__linux)||defined(__linux__))&&defined(__arm__)&&defined(_GLIBCPP_HAVE_GTHR_DEFAULT) //linuxonarmapparentlydoesn'tdefine_REENTRANT //sojustturnonthreadingsupportwheneverthestdlibisthreadsafe: #defineBOOST_HAS_THREADS #endif #if!defined(_GLIBCPP_USE_LONG_LONG)\ &&!defined(_GLIBCXX_USE_LONG_LONG)\ &&defined(BOOST_HAS_LONG_LONG) //Mayhavebeensetbycompiler/*.hpp,but"longlong"withoutlibrary //supportisuseless. #undefBOOST_HAS_LONG_LONG #endif //Appledoesn'tseemtoreliablydefineda*unix*macro #if!defined(CYGWIN)&&(defined(__unix__)\ ||defined(__unix)\ ||defined(unix)\ ||defined(__APPLE__)\ ||defined(__APPLE)\ ||defined(APPLE)) #include<unistd.h> #endif #ifdefined(__GLIBCXX__)||(defined(__GLIBCPP__)&&__GLIBCPP__>=20020514)//GCC>=3.1.0 #defineBOOST_STD_EXTENSION_NAMESPACE__gnu_cxx #defineBOOST_HAS_SLIST #defineBOOST_HAS_HASH #defineBOOST_SLIST_HEADER<ext/slist> #if!defined(__GNUC__)||__GNUC__<4||(__GNUC__==4&&__GNUC_MINOR__<3) #defineBOOST_HASH_SET_HEADER<ext/hash_set> #defineBOOST_HASH_MAP_HEADER<ext/hash_map> #else #defineBOOST_HASH_SET_HEADER<backward/hash_set> #defineBOOST_HASH_MAP_HEADER<backward/hash_map> #endif #endif //stdlibc++C++0xsupportisdetectedvia__GNUC__,__GNUC_MINOR__,andpossibly //__GNUC_PATCHLEVEL__atthesuggestionofJonathanWakely,oneofthestdlibc++ //developers.Healsocommented: // //"I'mnotsurehowuseful__GLIBCXX__isforyourpurposes,forinstancein //GCC4.2.4itissetto20080519butinGCC4.3.0itissetto20080305. //Although4.3.0wasreleasedearlierthan4.2.4,ithasbetterC++0xsupport //thananyreleaseinthe4.2series." // //Anotherresourceforunderstandingstdlibc++featuresis: //http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x //C++0xheadersinGCC4.3.0andlater // #if__GNUC__<4||(__GNUC__==4&&__GNUC_MINOR__<3)||!defined(__GXX_EXPERIMENTAL_CXX0X__) #defineBOOST_NO_0X_HDR_ARRAY #defineBOOST_NO_0X_HDR_REGEX #defineBOOST_NO_0X_HDR_TUPLE #defineBOOST_NO_STD_UNORDERED//deprecated;seefollowing #defineBOOST_NO_0X_HDR_UNORDERED_MAP #defineBOOST_NO_0X_HDR_UNORDERED_SET #endif //C++0xheadersinGCC4.4.0andlater // #if__GNUC__<4||(__GNUC__==4&&__GNUC_MINOR__<4)||!defined(__GXX_EXPERIMENTAL_CXX0X__) #defineBOOST_NO_0X_HDR_CHRONO #defineBOOST_NO_0X_HDR_CONDITION_VARIABLE #defineBOOST_NO_0X_HDR_FORWARD_LIST #defineBOOST_NO_0X_HDR_INITIALIZER_LIST #defineBOOST_NO_0X_HDR_MUTEX #defineBOOST_NO_0X_HDR_RATIO #defineBOOST_NO_0X_HDR_SYSTEM_ERROR #else #defineBOOST_HAS_TR1_COMPLEX_INVERSE_TRIG #defineBOOST_HAS_TR1_COMPLEX_OVERLOADS #endif #if(!defined(_GLIBCXX_HAS_GTHREADS)||!defined(_GLIBCXX_USE_C99_STDINT_TR1))&&(!defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)||!defined(BOOST_NO_0X_HDR_MUTEX)) #defineBOOST_NO_0X_HDR_CONDITION_VARIABLE #defineBOOST_NO_0X_HDR_MUTEX #endif //C++0xfeaturesinGCC4.5.0andlater // #if__GNUC__<4||(__GNUC__==4&&__GNUC_MINOR__<5)||!defined(__GXX_EXPERIMENTAL_CXX0X__) #defineBOOST_NO_NUMERIC_LIMITS_LOWEST #defineBOOST_NO_0X_HDR_FUTURE #defineBOOST_NO_0X_HDR_RANDOM #endif //C++0xfeaturesinGCC4.5.0andlater // #if__GNUC__<4||(__GNUC__==4&&__GNUC_MINOR__<6)||!defined(__GXX_EXPERIMENTAL_CXX0X__) #defineBOOST_NO_0X_HDR_TYPEINDEX #endif //C++0xheadersnotyet(fully!)implemented // #defineBOOST_NO_0X_HDR_THREAD #defineBOOST_NO_0X_HDR_TYPE_TRAITS #defineBOOST_NO_0X_HDR_CODECVT //---end---