]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/config/compiler/codegear.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
bd9f12d5531d3f81c7aa5d5363a2a45b42b9fd42
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / config / compiler / codegear.hpp
1 //  (C) Copyright John Maddock 2001 - 2003.\r
2 //  (C) Copyright David Abrahams 2002 - 2003.\r
3 //  (C) Copyright Aleksey Gurtovoy 2002.\r
4 //  Use, modification and distribution are subject to the\r
5 //  Boost Software License, Version 1.0. (See accompanying file\r
6 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
7 \r
8 //  See http://www.boost.org for most recent version.\r
9 \r
10 //  CodeGear C++ compiler setup:\r
11 \r
12 #if !defined( BOOST_WITH_CODEGEAR_WARNINGS )\r
13 // these warnings occur frequently in optimized template code\r
14 # pragma warn -8004 // var assigned value, but never used\r
15 # pragma warn -8008 // condition always true/false\r
16 # pragma warn -8066 // dead code can never execute\r
17 # pragma warn -8104 // static members with ctors not threadsafe\r
18 # pragma warn -8105 // reference member in class without ctors\r
19 #endif\r
20 //\r
21 // versions check:\r
22 // last known and checked version is 0x620\r
23 #if (__CODEGEARC__ > 0x620)\r
24 #  if defined(BOOST_ASSERT_CONFIG)\r
25 #     error "Unknown compiler version - please run the configure tests and report the results"\r
26 #  else\r
27 #     pragma message( "Unknown compiler version - please run the configure tests and report the results")\r
28 #  endif\r
29 #endif\r
30 \r
31 // CodeGear C++ Builder 2009\r
32 #if (__CODEGEARC__ <= 0x613)\r
33 #  define BOOST_NO_INTEGRAL_INT64_T\r
34 #  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS\r
35 #  define BOOST_NO_PRIVATE_IN_AGGREGATE\r
36 #  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE\r
37    // we shouldn't really need this - but too many things choke\r
38    // without it, this needs more investigation:\r
39 #  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS\r
40 #  define BOOST_SP_NO_SP_CONVERTIBLE\r
41 #endif\r
42 \r
43 // CodeGear C++ Builder 2010\r
44 #if (__CODEGEARC__ <= 0x620)\r
45 #  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type\r
46 #  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL\r
47 #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
48 #  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member\r
49 #  define BOOST_NO_USING_TEMPLATE\r
50 #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP\r
51 // Temporary hack, until specific MPL preprocessed headers are generated\r
52 #  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS\r
53 \r
54 #  ifdef NDEBUG\r
55       // fix broken <cstring> so that Boost.test works:\r
56 #     include <cstring>\r
57 #     undef strcmp\r
58 #  endif\r
59    // fix broken errno declaration:\r
60 #  include <errno.h>\r
61 #  ifndef errno\r
62 #     define errno errno\r
63 #  endif\r
64 \r
65 #endif\r
66 //\r
67 // C++0x macros:\r
68 //\r
69 #define BOOST_HAS_CHAR16_T\r
70 #define BOOST_HAS_CHAR32_T\r
71 #define BOOST_HAS_LONG_LONG\r
72 // #define BOOST_HAS_ALIGNOF\r
73 #define BOOST_HAS_DECLTYPE\r
74 #define BOOST_HAS_EXPLICIT_CONVERSION_OPS\r
75 // #define BOOST_HAS_RVALUE_REFS\r
76 #define BOOST_HAS_SCOPED_ENUM\r
77 // #define BOOST_HAS_STATIC_ASSERT\r
78 #define BOOST_HAS_STD_TYPE_TRAITS\r
79 \r
80 #define BOOST_NO_AUTO_DECLARATIONS\r
81 #define BOOST_NO_AUTO_MULTIDECLARATIONS\r
82 #define BOOST_NO_CONCEPTS\r
83 #define BOOST_NO_CONSTEXPR\r
84 #define BOOST_NO_DEFAULTED_FUNCTIONS\r
85 #define BOOST_NO_DELETED_FUNCTIONS\r
86 #define BOOST_NO_EXTERN_TEMPLATE\r
87 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS\r
88 #define BOOST_NO_INITIALIZER_LISTS\r
89 #define BOOST_NO_LAMBDAS\r
90 #define BOOST_NO_NULLPTR\r
91 #define BOOST_NO_RAW_LITERALS\r
92 #define BOOST_NO_RVALUE_REFERENCES\r
93 #define BOOST_NO_SFINAE_EXPR\r
94 #define BOOST_NO_STATIC_ASSERT\r
95 #define BOOST_NO_TEMPLATE_ALIASES\r
96 #define BOOST_NO_UNICODE_LITERALS\r
97 #define BOOST_NO_VARIADIC_TEMPLATES\r
98 \r
99 //\r
100 // TR1 macros:\r
101 //\r
102 #define BOOST_HAS_TR1_HASH\r
103 #define BOOST_HAS_TR1_TYPE_TRAITS\r
104 #define BOOST_HAS_TR1_UNORDERED_MAP\r
105 #define BOOST_HAS_TR1_UNORDERED_SET\r
106 \r
107 #define BOOST_HAS_MACRO_USE_FACET\r
108 \r
109 #define BOOST_NO_INITIALIZER_LISTS\r
110 \r
111 // On non-Win32 platforms let the platform config figure this out:\r
112 #ifdef _WIN32\r
113 #  define BOOST_HAS_STDINT_H\r
114 #endif\r
115 \r
116 //\r
117 // __int64:\r
118 //\r
119 #if !defined(__STRICT_ANSI__)\r
120 #  define BOOST_HAS_MS_INT64\r
121 #endif\r
122 //\r
123 // check for exception handling support:\r
124 //\r
125 #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)\r
126 #  define BOOST_NO_EXCEPTIONS\r
127 #endif\r
128 //\r
129 // all versions have a <dirent.h>:\r
130 //\r
131 #if !defined(__STRICT_ANSI__)\r
132 #  define BOOST_HAS_DIRENT_H\r
133 #endif\r
134 //\r
135 // all versions support __declspec:\r
136 //\r
137 #if !defined(__STRICT_ANSI__)\r
138 #  define BOOST_HAS_DECLSPEC\r
139 #endif\r
140 //\r
141 // ABI fixing headers:\r
142 //\r
143 #ifndef BOOST_ABI_PREFIX\r
144 #  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"\r
145 #endif\r
146 #ifndef BOOST_ABI_SUFFIX\r
147 #  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"\r
148 #endif\r
149 //\r
150 // Disable Win32 support in ANSI mode:\r
151 //\r
152 #  pragma defineonoption BOOST_DISABLE_WIN32 -A\r
153 //\r
154 // MSVC compatibility mode does some nasty things:\r
155 // TODO: look up if this doesn't apply to the whole 12xx range\r
156 //\r
157 #if defined(_MSC_VER) && (_MSC_VER <= 1200)\r
158 #  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
159 #  define BOOST_NO_VOID_RETURNS\r
160 #endif\r
161 \r
162 #define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)\r
163 \r