BVB Source Codes

mars Show borland.hpp Source code

Return Download mars: download borland.hpp Source code - Download mars Source code - Type:.hpp
  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. //  Borland C++ compiler setup:
  11.  
  12. //
  13. // versions check:
  14. // we don't support Borland prior to version 5.4:
  15. #if __BORLANDC__ < 0x540
  16. #  error "Compiler not supported or configured - please reconfigure"
  17. #endif
  18.  
  19. // last known compiler version:
  20. #if (__BORLANDC__ > 0x613)
  21. //#  if defined(BOOST_ASSERT_CONFIG)
  22. #     error "Unknown compiler version - please run the configure tests and report the results"
  23. //#  else
  24. //#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
  25. //#  endif
  26. #elif (__BORLANDC__ == 0x600)
  27. #  error "CBuilderX preview compiler is no longer supported"
  28. #endif
  29.  
  30. //
  31. // Support macros to help with standard library detection
  32. #if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
  33. #  define BOOST_BCB_WITH_ROGUE_WAVE
  34. #elif __BORLANDC__ < 0x570
  35. #  define BOOST_BCB_WITH_STLPORT
  36. #else
  37. #  define BOOST_BCB_WITH_DINKUMWARE
  38. #endif
  39.  
  40. //
  41. // Version 5.0 and below:
  42. #   if __BORLANDC__ <= 0x0550
  43. // Borland C++Builder 4 and 5:
  44. #     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
  45. #     if __BORLANDC__ == 0x0550
  46. // Borland C++Builder 5, command-line compiler 5.5:
  47. #       define BOOST_NO_OPERATORS_IN_NAMESPACE
  48. #     endif
  49. // Variadic macros do not exist for C++ Builder versions 5 and below
  50. #define BOOST_NO_CXX11_VARIADIC_MACROS
  51. #   endif
  52.  
  53. // Version 5.51 and below:
  54. #if (__BORLANDC__ <= 0x551)
  55. #  define BOOST_NO_CV_SPECIALIZATIONS
  56. #  define BOOST_NO_CV_VOID_SPECIALIZATIONS
  57. #  define BOOST_NO_DEDUCED_TYPENAME
  58. // workaround for missing WCHAR_MAX/WCHAR_MIN:
  59. #ifdef __cplusplus
  60. #include <climits>
  61. #include <cwchar>
  62. #else
  63. #include <limits.h>
  64. #include <wchar.h>
  65. #endif // __cplusplus
  66. #ifndef WCHAR_MAX
  67. #  define WCHAR_MAX 0xffff
  68. #endif
  69. #ifndef WCHAR_MIN
  70. #  define WCHAR_MIN 0
  71. #endif
  72. #endif
  73.  
  74. // Borland C++ Builder 6 and below:
  75. #if (__BORLANDC__ <= 0x564)
  76.  
  77. #  if defined(NDEBUG) && defined(__cplusplus)
  78.       // fix broken <cstring> so that Boost.test works:
  79. #     include <cstring>
  80. #     undef strcmp
  81. #  endif
  82.    // fix broken errno declaration:
  83. #  include <errno.h>
  84. #  ifndef errno
  85. #     define errno errno
  86. #  endif
  87.  
  88. #endif
  89.  
  90. //
  91. // new bug in 5.61:
  92. #if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
  93.    // this seems to be needed by the command line compiler, but not the IDE:
  94. #  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
  95. #endif
  96.  
  97. // Borland C++ Builder 2006 Update 2 and below:
  98. #if (__BORLANDC__ <= 0x582)
  99. #  define BOOST_NO_SFINAE
  100. #  define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
  101. #  define BOOST_NO_TEMPLATE_TEMPLATES
  102.  
  103. #  define BOOST_NO_PRIVATE_IN_AGGREGATE
  104.  
  105. #  ifdef _WIN32
  106. #     define BOOST_NO_SWPRINTF
  107. #  elif defined(linux) || defined(__linux__) || defined(__linux)
  108.       // we should really be able to do without this
  109.       // but the wcs* functions aren't imported into std::
  110. #     define BOOST_NO_STDC_NAMESPACE
  111.       // _CPPUNWIND doesn't get automatically set for some reason:
  112. #     pragma defineonoption BOOST_CPPUNWIND -x
  113. #  endif
  114. #endif
  115.  
  116. #if (__BORLANDC__ <= 0x613)  // Beman has asked Alisdair for more info
  117.    // we shouldn't really need this - but too many things choke
  118.    // without it, this needs more investigation:
  119. #  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
  120. #  define BOOST_NO_IS_ABSTRACT
  121. #  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
  122. #  define BOOST_NO_USING_TEMPLATE
  123. #  define BOOST_SP_NO_SP_CONVERTIBLE
  124.  
  125. // Temporary workaround
  126. #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
  127. #endif
  128.  
  129. // Borland C++ Builder 2008 and below:
  130. #  define BOOST_NO_INTEGRAL_INT64_T
  131. #  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
  132. #  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
  133. #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
  134. #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  135. #  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
  136. #  define BOOST_NO_NESTED_FRIENDSHIP
  137. #  define BOOST_NO_TYPENAME_WITH_CTOR
  138. #if (__BORLANDC__ < 0x600)
  139. #  define BOOST_ILLEGAL_CV_REFERENCES
  140. #endif
  141.  
  142. //
  143. //  Positive Feature detection
  144. //
  145. // Borland C++ Builder 2008 and below:
  146. #if (__BORLANDC__ >= 0x599)
  147. #  pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
  148. #endif
  149. //
  150. // C++0x Macros:
  151. //
  152. #if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
  153. #  define BOOST_NO_CXX11_CHAR16_T
  154. #  define BOOST_NO_CXX11_CHAR32_T
  155. #  define BOOST_NO_CXX11_DECLTYPE
  156. #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
  157. #  define BOOST_NO_CXX11_EXTERN_TEMPLATE
  158. #  define BOOST_NO_CXX11_RVALUE_REFERENCES
  159. #  define BOOST_NO_CXX11_SCOPED_ENUMS
  160. #  define BOOST_NO_CXX11_STATIC_ASSERT
  161. #else
  162. #  define BOOST_HAS_ALIGNOF
  163. #  define BOOST_HAS_CHAR16_T
  164. #  define BOOST_HAS_CHAR32_T
  165. #  define BOOST_HAS_DECLTYPE
  166. #  define BOOST_HAS_EXPLICIT_CONVERSION_OPS
  167. #  define BOOST_HAS_REF_QUALIFIER
  168. #  define BOOST_HAS_RVALUE_REFS
  169. #  define BOOST_HAS_STATIC_ASSERT
  170. #endif
  171.  
  172. #define BOOST_NO_CXX11_AUTO_DECLARATIONS
  173. #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
  174. #define BOOST_NO_CXX11_CONSTEXPR
  175. #define BOOST_NO_CXX11_DECLTYPE_N3276
  176. #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
  177. #define BOOST_NO_CXX11_DELETED_FUNCTIONS
  178. #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
  179. #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  180. #define BOOST_NO_CXX11_LAMBDAS
  181. #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
  182. #define BOOST_NO_CXX11_NULLPTR
  183. #define BOOST_NO_CXX11_RANGE_BASED_FOR
  184. #define BOOST_NO_CXX11_RAW_LITERALS
  185. #define BOOST_NO_CXX11_RVALUE_REFERENCES
  186. #define BOOST_NO_CXX11_SCOPED_ENUMS
  187. #define BOOST_NO_SFINAE_EXPR
  188. #define BOOST_NO_CXX11_TEMPLATE_ALIASES
  189. #define BOOST_NO_CXX11_UNICODE_LITERALS    // UTF-8 still not supported
  190. #define BOOST_NO_CXX11_VARIADIC_TEMPLATES
  191. #define BOOST_NO_CXX11_NOEXCEPT
  192. #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
  193. #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
  194. #define BOOST_NO_CXX11_ALIGNAS
  195. #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
  196. #define BOOST_NO_CXX11_INLINE_NAMESPACES
  197. #define BOOST_NO_CXX11_REF_QUALIFIERS
  198. #define BOOST_NO_CXX11_FINAL
  199.  
  200. // C++ 14:
  201. #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
  202. #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
  203. #endif
  204. #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
  205. #  define BOOST_NO_CXX14_BINARY_LITERALS
  206. #endif
  207. #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
  208. #  define BOOST_NO_CXX14_CONSTEXPR
  209. #endif
  210. #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
  211. #  define BOOST_NO_CXX14_DECLTYPE_AUTO
  212. #endif
  213. #if (__cplusplus < 201304) // There's no SD6 check for this....
  214. #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
  215. #endif
  216. #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
  217. #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
  218. #endif
  219. #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
  220. #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
  221. #endif
  222. #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
  223. #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
  224. #endif
  225. #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
  226. #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
  227. #endif
  228.  
  229. #if __BORLANDC__ >= 0x590
  230. #  define BOOST_HAS_TR1_HASH
  231.  
  232. #  define BOOST_HAS_MACRO_USE_FACET
  233. #endif
  234.  
  235. //
  236. // Post 0x561 we have long long and stdint.h:
  237. #if __BORLANDC__ >= 0x561
  238. #  ifndef __NO_LONG_LONG
  239. #     define BOOST_HAS_LONG_LONG
  240. #  else
  241. #     define BOOST_NO_LONG_LONG
  242. #  endif
  243.    // On non-Win32 platforms let the platform config figure this out:
  244. #  ifdef _WIN32
  245. #      define BOOST_HAS_STDINT_H
  246. #  endif
  247. #endif
  248.  
  249. // Borland C++Builder 6 defaults to using STLPort.  If _USE_OLD_RW_STL is
  250. // defined, then we have 0x560 or greater with the Rogue Wave implementation
  251. // which presumably has the std::DBL_MAX bug.
  252. #if defined( BOOST_BCB_WITH_ROGUE_WAVE )
  253. // <climits> is partly broken, some macros define symbols that are really in
  254. // namespace std, so you end up having to use illegal constructs like
  255. // std::DBL_MAX, as a fix we'll just include float.h and have done with:
  256. #include <float.h>
  257. #endif
  258. //
  259. // __int64:
  260. //
  261. #if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
  262. #  define BOOST_HAS_MS_INT64
  263. #endif
  264. //
  265. // check for exception handling support:
  266. //
  267. #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
  268. #  define BOOST_NO_EXCEPTIONS
  269. #endif
  270. //
  271. // all versions have a <dirent.h>:
  272. //
  273. #ifndef __STRICT_ANSI__
  274. #  define BOOST_HAS_DIRENT_H
  275. #endif
  276. //
  277. // all versions support __declspec:
  278. //
  279. #if defined(__STRICT_ANSI__)
  280. // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
  281. #  define BOOST_SYMBOL_EXPORT
  282. #endif
  283. //
  284. // ABI fixing headers:
  285. //
  286. #if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
  287. #ifndef BOOST_ABI_PREFIX
  288. #  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
  289. #endif
  290. #ifndef BOOST_ABI_SUFFIX
  291. #  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
  292. #endif
  293. #endif
  294. //
  295. // Disable Win32 support in ANSI mode:
  296. //
  297. #if __BORLANDC__ < 0x600
  298. #  pragma defineonoption BOOST_DISABLE_WIN32 -A
  299. #elif defined(__STRICT_ANSI__)
  300. #  define BOOST_DISABLE_WIN32
  301. #endif
  302. //
  303. // MSVC compatibility mode does some nasty things:
  304. // TODO: look up if this doesn't apply to the whole 12xx range
  305. //
  306. #if defined(_MSC_VER) && (_MSC_VER <= 1200)
  307. #  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
  308. #  define BOOST_NO_VOID_RETURNS
  309. #endif
  310.  
  311. // Borland did not implement value-initialization completely, as I reported
  312. // in 2007, Borland Report 51854, "Value-initialization: POD struct should be
  313. // zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
  314. // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
  315. // (Niels Dekker, LKEB, April 2010)
  316. #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
  317.  
  318. #define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
  319.  
downloadborland.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top