this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at develop 244 lines 8.4 kB view raw
1// (C) Copyright John Maddock 2001 - 2002. 2// (C) Copyright Darin Adler 2001. 3// (C) Copyright Jens Maurer 2001. 4// Use, modification and distribution are subject to the 5// Boost Software License, Version 1.0. (See accompanying file 6// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 8// See http://www.boost.org for most recent version. 9 10// STLPort standard library config: 11 12#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) 13# include <cstddef> 14# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) 15# error "This is not STLPort!" 16# endif 17#endif 18 19// Apple doesn't seem to reliably defined a *unix* macro 20#if !defined(CYGWIN) && ( defined(__unix__) \ 21 || defined(__unix) \ 22 || defined(unix) \ 23 || defined(__APPLE__) \ 24 || defined(__APPLE) \ 25 || defined(APPLE)) 26# include <unistd.h> 27#endif 28 29// 30// __STL_STATIC_CONST_INIT_BUG implies GECODE_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS 31// for versions prior to 4.1(beta) 32// 33#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400) 34# define GECODE_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS 35#endif 36 37// 38// If STLport thinks that there is no partial specialisation, then there is no 39// std::iterator traits: 40// 41#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION)) 42# define GECODE_BOOST_NO_STD_ITERATOR_TRAITS 43#endif 44 45// 46// No new style iostreams on GCC without STLport's iostreams enabled: 47// 48#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS)) 49# define GECODE_BOOST_NO_STRINGSTREAM 50#endif 51 52// 53// No new iostreams implies no std::locale, and no std::stringstream: 54// 55#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS) 56# define GECODE_BOOST_NO_STD_LOCALE 57# define GECODE_BOOST_NO_STRINGSTREAM 58#endif 59 60// 61// If the streams are not native, and we have a "using ::x" compiler bug 62// then the io stream facets are not available in namespace std:: 63// 64#ifdef _STLPORT_VERSION 65# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(GECODE_BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) 66# define GECODE_BOOST_NO_STD_LOCALE 67# endif 68#else 69# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(GECODE_BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) 70# define GECODE_BOOST_NO_STD_LOCALE 71# endif 72#endif 73 74#if defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x500) || (_STLPORT_VERSION >= 0x520)) 75# define GECODE_BOOST_NO_STD_UNORDERED 76#endif 77 78#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520) 79# define GECODE_BOOST_HAS_TR1_UNORDERED_SET 80# define GECODE_BOOST_HAS_TR1_UNORDERED_MAP 81#endif 82// 83// Without member template support enabled, their are no template 84// iterate constructors, and no std::allocator: 85// 86#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES)) 87# define GECODE_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS 88# define GECODE_BOOST_NO_STD_ALLOCATOR 89#endif 90// 91// however we always have at least a partial allocator: 92// 93#define GECODE_BOOST_HAS_PARTIAL_STD_ALLOCATOR 94 95#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) 96# define GECODE_BOOST_NO_STD_ALLOCATOR 97#endif 98 99#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(GECODE_BOOST_MSVC) && (GECODE_BOOST_MSVC <= 1300) 100# define GECODE_BOOST_NO_STD_ALLOCATOR 101#endif 102 103// 104// If STLport thinks there is no wchar_t at all, then we have to disable 105// the support for the relevant specilazations of std:: templates. 106// 107#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT) 108# ifndef GECODE_BOOST_NO_STD_WSTRING 109# define GECODE_BOOST_NO_STD_WSTRING 110# endif 111# ifndef GECODE_BOOST_NO_STD_WSTREAMBUF 112# define GECODE_BOOST_NO_STD_WSTREAMBUF 113# endif 114#endif 115 116// 117// We always have SGI style hash_set, hash_map, and slist: 118// 119#ifndef _STLP_NO_EXTENSIONS 120#define GECODE_BOOST_HAS_HASH 121#define GECODE_BOOST_HAS_SLIST 122#endif 123 124// 125// STLport does a good job of importing names into namespace std::, 126// but doesn't always get them all, define GECODE_BOOST_NO_STDC_NAMESPACE, since our 127// workaround does not conflict with STLports: 128// 129// 130// Harold Howe says: 131// Borland switched to STLport in BCB6. Defining GECODE_BOOST_NO_STDC_NAMESPACE with 132// BCB6 does cause problems. If we detect C++ Builder, then don't define 133// GECODE_BOOST_NO_STDC_NAMESPACE 134// 135#if !defined(__BORLANDC__) && !defined(__DMC__) 136// 137// If STLport is using it's own namespace, and the real names are in 138// the global namespace, then we duplicate STLport's using declarations 139// (by defining GECODE_BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't 140// necessarily import all the names we need into namespace std:: 141// 142# if (defined(__STL_IMPORT_VENDOR_CSTD) \ 143 || defined(__STL_USE_OWN_NAMESPACE) \ 144 || defined(_STLP_IMPORT_VENDOR_CSTD) \ 145 || defined(_STLP_USE_OWN_NAMESPACE)) \ 146 && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD)) 147# define GECODE_BOOST_NO_STDC_NAMESPACE 148# define GECODE_BOOST_NO_EXCEPTION_STD_NAMESPACE 149# endif 150#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560 151// STLport doesn't import std::abs correctly: 152#include <stdlib.h> 153namespace std { using ::abs; } 154// and strcmp/strcpy don't get imported either ('cos they are macros) 155#include <string.h> 156#ifdef strcpy 157# undef strcpy 158#endif 159#ifdef strcmp 160# undef strcmp 161#endif 162#ifdef _STLP_VENDOR_CSTD 163namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; } 164#endif 165#endif 166 167// 168// std::use_facet may be non-standard, uses a class instead: 169// 170#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) 171# define GECODE_BOOST_NO_STD_USE_FACET 172# define GECODE_BOOST_HAS_STLP_USE_FACET 173#endif 174 175// 176// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but 177// only if GECODE_BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import 178// into std:: ourselves). 179// 180#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(GECODE_BOOST_NO_STDC_NAMESPACE) 181# define GECODE_BOOST_NO_CWCHAR 182# define GECODE_BOOST_NO_CWCTYPE 183#endif 184 185// 186// If STLport for some reason was configured so that it thinks that wchar_t 187// is not an intrinsic type, then we have to disable the support for it as 188// well (we would be missing required specializations otherwise). 189// 190#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT) 191# undef GECODE_BOOST_NO_INTRINSIC_WCHAR_T 192# define GECODE_BOOST_NO_INTRINSIC_WCHAR_T 193#endif 194 195// 196// Borland ships a version of STLport with C++ Builder 6 that lacks 197// hashtables and the like: 198// 199#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560) 200# undef GECODE_BOOST_HAS_HASH 201#endif 202 203// 204// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max 205// 206#if defined(__GNUC__) && (__GNUC__ < 3) 207# include <algorithm> // for std::min and std::max 208# define GECODE_BOOST_USING_STD_MIN() ((void)0) 209# define GECODE_BOOST_USING_STD_MAX() ((void)0) 210namespace gecode_boost { using std::min; using std::max; } 211#endif 212 213// C++0x headers not yet implemented 214// 215# define GECODE_BOOST_NO_0X_HDR_ARRAY 216# define GECODE_BOOST_NO_0X_HDR_CHRONO 217# define GECODE_BOOST_NO_0X_HDR_CODECVT 218# define GECODE_BOOST_NO_0X_HDR_CONDITION_VARIABLE 219# define GECODE_BOOST_NO_0X_HDR_FORWARD_LIST 220# define GECODE_BOOST_NO_0X_HDR_FUTURE 221# define GECODE_BOOST_NO_0X_HDR_INITIALIZER_LIST 222# define GECODE_BOOST_NO_0X_HDR_MUTEX 223# define GECODE_BOOST_NO_0X_HDR_RANDOM 224# define GECODE_BOOST_NO_0X_HDR_RATIO 225# define GECODE_BOOST_NO_0X_HDR_REGEX 226# define GECODE_BOOST_NO_0X_HDR_SYSTEM_ERROR 227# define GECODE_BOOST_NO_0X_HDR_THREAD 228# define GECODE_BOOST_NO_0X_HDR_TUPLE 229# define GECODE_BOOST_NO_0X_HDR_TYPE_TRAITS 230# define GECODE_BOOST_NO_0X_HDR_TYPEINDEX 231# define GECODE_BOOST_NO_STD_UNORDERED // deprecated; see following 232# define GECODE_BOOST_NO_0X_HDR_UNORDERED_MAP 233# define GECODE_BOOST_NO_0X_HDR_UNORDERED_SET 234# define GECODE_BOOST_NO_NUMERIC_LIMITS_LOWEST 235 236#define GECODE_BOOST_STDLIB "STLPort standard library version " GECODE_BOOST_STRINGIZE(__SGI_STL_PORT) 237 238 239 240 241 242 243 244