this repo has no description
1// (C) Copyright John Maddock 2001 - 2003. 2// (C) Copyright David Abrahams 2002 - 2003. 3// (C) Copyright Aleksey Gurtovoy 2002. 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// CodeGear C++ compiler setup: 11 12#if !defined( GECODE_BOOST_WITH_CODEGEAR_WARNINGS ) 13// these warnings occur frequently in optimized template code 14# pragma warn -8004 // var assigned value, but never used 15# pragma warn -8008 // condition always true/false 16# pragma warn -8066 // dead code can never execute 17# pragma warn -8104 // static members with ctors not threadsafe 18# pragma warn -8105 // reference member in class without ctors 19#endif 20// 21// versions check: 22// last known and checked version is 0x621 23#if (__CODEGEARC__ > 0x621) 24# if defined(GECODE_BOOST_ASSERT_CONFIG) 25# error "Unknown compiler version - please run the configure tests and report the results" 26# else 27# pragma message( "Unknown compiler version - please run the configure tests and report the results") 28# endif 29#endif 30 31// CodeGear C++ Builder 2009 32#if (__CODEGEARC__ <= 0x613) 33# define GECODE_BOOST_NO_INTEGRAL_INT64_T 34# define GECODE_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS 35# define GECODE_BOOST_NO_PRIVATE_IN_AGGREGATE 36# define GECODE_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE 37 // we shouldn't really need this - but too many things choke 38 // without it, this needs more investigation: 39# define GECODE_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS 40# define GECODE_BOOST_SP_NO_SP_CONVERTIBLE 41#endif 42 43// CodeGear C++ Builder 2010 44#if (__CODEGEARC__ <= 0x621) 45# define GECODE_BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type 46# define GECODE_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL 47# define GECODE_BOOST_NO_MEMBER_TEMPLATE_FRIENDS 48# define GECODE_BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member 49# define GECODE_BOOST_NO_USING_TEMPLATE 50# define GECODE_BOOST_NO_TWO_PHASE_NAME_LOOKUP 51// Temporary hack, until specific MPL preprocessed headers are generated 52# define GECODE_BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS 53 54// CodeGear has not yet completely implemented value-initialization, for 55// example for array types, as I reported in 2010: Embarcadero Report 83751, 56// "Value-initialization: arrays should have each element value-initialized", 57// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751 58// Last checked version: Embarcadero C++ 6.21 59// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues 60// (Niels Dekker, LKEB, April 2010) 61# define GECODE_BOOST_NO_COMPLETE_VALUE_INITIALIZATION 62 63# if defined(NDEBUG) && defined(__cplusplus) 64 // fix broken <cstring> so that Boost.test works: 65# include <cstring> 66# undef strcmp 67# endif 68 // fix broken errno declaration: 69# include <errno.h> 70# ifndef errno 71# define errno errno 72# endif 73 74#endif 75// 76// C++0x macros: 77// 78#if (__CODEGEARC__ <= 0x620) 79#define GECODE_BOOST_NO_STATIC_ASSERT 80#else 81#define GECODE_BOOST_HAS_STATIC_ASSERT 82#endif 83#define GECODE_BOOST_HAS_CHAR16_T 84#define GECODE_BOOST_HAS_CHAR32_T 85#define GECODE_BOOST_HAS_LONG_LONG 86// #define GECODE_BOOST_HAS_ALIGNOF 87#define GECODE_BOOST_HAS_DECLTYPE 88#define GECODE_BOOST_HAS_EXPLICIT_CONVERSION_OPS 89// #define GECODE_BOOST_HAS_RVALUE_REFS 90#define GECODE_BOOST_HAS_SCOPED_ENUM 91// #define GECODE_BOOST_HAS_STATIC_ASSERT 92#define GECODE_BOOST_HAS_STD_TYPE_TRAITS 93 94#define GECODE_BOOST_NO_AUTO_DECLARATIONS 95#define GECODE_BOOST_NO_AUTO_MULTIDECLARATIONS 96#define GECODE_BOOST_NO_CONSTEXPR 97#define GECODE_BOOST_NO_DEFAULTED_FUNCTIONS 98#define GECODE_BOOST_NO_DELETED_FUNCTIONS 99#define GECODE_BOOST_NO_EXTERN_TEMPLATE 100#define GECODE_BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS 101#define GECODE_BOOST_NO_INITIALIZER_LISTS 102#define GECODE_BOOST_NO_LAMBDAS 103#define GECODE_BOOST_NO_NOEXCEPT 104#define GECODE_BOOST_NO_NULLPTR 105#define GECODE_BOOST_NO_RAW_LITERALS 106#define GECODE_BOOST_NO_RVALUE_REFERENCES 107#define GECODE_BOOST_NO_SFINAE_EXPR 108#define GECODE_BOOST_NO_TEMPLATE_ALIASES 109#define GECODE_BOOST_NO_UNICODE_LITERALS 110#define GECODE_BOOST_NO_VARIADIC_TEMPLATES 111#define GECODE_BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX 112 113// 114// TR1 macros: 115// 116#define GECODE_BOOST_HAS_TR1_HASH 117#define GECODE_BOOST_HAS_TR1_TYPE_TRAITS 118#define GECODE_BOOST_HAS_TR1_UNORDERED_MAP 119#define GECODE_BOOST_HAS_TR1_UNORDERED_SET 120 121#define GECODE_BOOST_HAS_MACRO_USE_FACET 122 123#define GECODE_BOOST_NO_INITIALIZER_LISTS 124 125// On non-Win32 platforms let the platform config figure this out: 126#ifdef _WIN32 127# define GECODE_BOOST_HAS_STDINT_H 128#endif 129 130// 131// __int64: 132// 133#if !defined(__STRICT_ANSI__) 134# define GECODE_BOOST_HAS_MS_INT64 135#endif 136// 137// check for exception handling support: 138// 139#if !defined(_CPPUNWIND) && !defined(GECODE_BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(GECODE_BOOST_NO_EXCEPTIONS) 140# define GECODE_BOOST_NO_EXCEPTIONS 141#endif 142// 143// all versions have a <dirent.h>: 144// 145#if !defined(__STRICT_ANSI__) 146# define GECODE_BOOST_HAS_DIRENT_H 147#endif 148// 149// all versions support __declspec: 150// 151#if defined(__STRICT_ANSI__) 152// config/platform/win32.hpp will define GECODE_BOOST_SYMBOL_EXPORT, etc., unless already defined 153# define GECODE_BOOST_SYMBOL_EXPORT 154#endif 155// 156// ABI fixing headers: 157// 158#ifndef GECODE_BOOST_ABI_PREFIX 159# define GECODE_BOOST_ABI_PREFIX "gecode/third-party/boost/config/abi/borland_prefix.hpp" 160#endif 161#ifndef GECODE_BOOST_ABI_SUFFIX 162# define GECODE_BOOST_ABI_SUFFIX "gecode/third-party/boost/config/abi/borland_suffix.hpp" 163#endif 164// 165// Disable Win32 support in ANSI mode: 166// 167# pragma defineonoption GECODE_BOOST_DISABLE_WIN32 -A 168// 169// MSVC compatibility mode does some nasty things: 170// TODO: look up if this doesn't apply to the whole 12xx range 171// 172#if defined(_MSC_VER) && (_MSC_VER <= 1200) 173# define GECODE_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP 174# define GECODE_BOOST_NO_VOID_RETURNS 175#endif 176 177#define GECODE_BOOST_COMPILER "CodeGear C++ version " GECODE_BOOST_STRINGIZE(__CODEGEARC__) 178