codegear.hpp
Go to the documentation of this file.
00001 //  (C) Copyright John Maddock 2001 - 2003.
00002 //  (C) Copyright David Abrahams 2002 - 2003.
00003 //  (C) Copyright Aleksey Gurtovoy 2002.
00004 //  Use, modification and distribution are subject to the
00005 //  Boost Software License, Version 1.0. (See accompanying file
00006 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
00007 
00008 //  See http://www.boost.org for most recent version.
00009 
00010 //  CodeGear C++ compiler setup:
00011 
00012 #if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
00013 // these warnings occur frequently in optimized template code
00014 # pragma warn -8004 // var assigned value, but never used
00015 # pragma warn -8008 // condition always true/false
00016 # pragma warn -8066 // dead code can never execute
00017 # pragma warn -8104 // static members with ctors not threadsafe
00018 # pragma warn -8105 // reference member in class without ctors
00019 #endif
00020 //
00021 // versions check:
00022 // last known and checked version is 0x610
00023 #if (__CODEGEARC__ > 0x610)
00024 #  if defined(BOOST_ASSERT_CONFIG)
00025 #     error "Unknown compiler version - please run the configure tests and report the results"
00026 #  else
00027 #     pragma message( "Unknown compiler version - please run the configure tests and report the results")
00028 #  endif
00029 #endif
00030 
00031 // CodeGear C++ Builder 2009
00032 #if (__CODEGEARC__ <= 0x610)
00033 #  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
00034 #  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
00035 #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
00036 #  define BOOST_NO_PRIVATE_IN_AGGREGATE
00037 #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
00038 #  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
00039 #  define BOOST_NO_USING_TEMPLATE
00040    // we shouldn't really need this - but too many things choke
00041    // without it, this needs more investigation:
00042 #  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
00043 #  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
00044 #  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
00045 
00046 // Temporary hack, until specific MPL preprocessed headers are generated
00047 #  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
00048 
00049 #  ifdef NDEBUG
00050       // fix broken <cstring> so that Boost.test works:
00051 #     include <cstring>
00052 #     undef strcmp
00053 #  endif
00054    // fix broken errno declaration:
00055 #  include <errno.h>
00056 #  ifndef errno
00057 #     define errno errno
00058 #  endif
00059 
00060 #endif
00061 
00062 //
00063 // C++0x macros:
00064 //
00065 #define BOOST_HAS_CHAR16_T
00066 #define BOOST_HAS_CHAR32_T
00067 #define BOOST_HAS_LONG_LONG
00068 // #define BOOST_HAS_ALIGNOF
00069 #define BOOST_HAS_DECLTYPE
00070 #define BOOST_HAS_EXPLICIT_CONVERSION_OPS
00071 // #define BOOST_HAS_RVALUE_REFS
00072 #define BOOST_HAS_SCOPED_ENUM
00073 // #define BOOST_HAS_STATIC_ASSERT
00074 #define BOOST_HAS_STD_TYPE_TRAITS
00075 
00076 #define BOOST_NO_EXTERN_TEMPLATE
00077 #define BOOST_NO_SCOPED_ENUMS
00078 #define BOOST_NO_STATIC_ASSERT
00079 #define BOOST_NO_RVALUE_REFERENCES
00080 #define BOOST_NO_VARIADIC_TEMPLATES
00081 #define BOOST_NO_CONSTEXPR
00082 #define BOOST_NO_DEFAULTED_FUNCTIONS
00083 #define BOOST_NO_DELETED_FUNCTIONS
00084 #define BOOST_NO_RAW_LITERALS
00085 #define BOOST_NO_UNICODE_LITERALS
00086 #define BOOST_NO_AUTO_DECLARATIONS
00087 #define BOOST_NO_AUTO_MULTIDECLARATIONS
00088 
00089 //
00090 // TR1 macros:
00091 //
00092 #define BOOST_HAS_TR1_HASH
00093 #define BOOST_HAS_TR1_TYPE_TRAITS
00094 #define BOOST_HAS_TR1_UNORDERED_MAP
00095 #define BOOST_HAS_TR1_UNORDERED_SET
00096 
00097 #define BOOST_HAS_MACRO_USE_FACET
00098 
00099 #define BOOST_NO_INITIALIZER_LISTS
00100 
00101 // On non-Win32 platforms let the platform config figure this out:
00102 #ifdef _WIN32
00103 #  define BOOST_HAS_STDINT_H
00104 #endif
00105 
00106 //
00107 // __int64:
00108 //
00109 #if !defined(__STRICT_ANSI__)
00110 #  define BOOST_HAS_MS_INT64
00111 #endif
00112 //
00113 // check for exception handling support:
00114 //
00115 #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
00116 #  define BOOST_NO_EXCEPTIONS
00117 #endif
00118 //
00119 // all versions have a <dirent.h>:
00120 //
00121 #if !defined(__STRICT_ANSI__)
00122 #  define BOOST_HAS_DIRENT_H
00123 #endif
00124 //
00125 // all versions support __declspec:
00126 //
00127 #if !defined(__STRICT_ANSI__)
00128 #  define BOOST_HAS_DECLSPEC
00129 #endif
00130 //
00131 // ABI fixing headers:
00132 //
00133 #ifndef BOOST_ABI_PREFIX
00134 #  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
00135 #endif
00136 #ifndef BOOST_ABI_SUFFIX
00137 #  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
00138 #endif
00139 //
00140 // Disable Win32 support in ANSI mode:
00141 //
00142 #  pragma defineonoption BOOST_DISABLE_WIN32 -A
00143 //
00144 // MSVC compatibility mode does some nasty things:
00145 // TODO: look up if this doesn't apply to the whole 12xx range
00146 //
00147 #if defined(_MSC_VER) && (_MSC_VER <= 1200)
00148 #  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
00149 #  define BOOST_NO_VOID_RETURNS
00150 #endif
00151 
00152 #define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
00153 


appl
Author(s): petercai
autogenerated on Tue Jan 7 2014 11:02:28