digitalmars.hpp 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. // Copyright (C) Christof Meerwald 2003
  2. // Copyright (C) Dan Watkins 2003
  3. //
  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. // Digital Mars C++ compiler setup:
  8. #define BOOST_COMPILER __DMC_VERSION_STRING__
  9. #define BOOST_HAS_LONG_LONG
  10. #define BOOST_HAS_PRAGMA_ONCE
  11. #if (__DMC__ <= 0x833)
  12. #define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
  13. #define BOOST_NO_TEMPLATE_TEMPLATES
  14. #define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
  15. #define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
  16. #define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
  17. #endif
  18. #if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
  19. #define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
  20. #define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
  21. #define BOOST_NO_OPERATORS_IN_NAMESPACE
  22. #define BOOST_NO_UNREACHABLE_RETURN_DETECTION
  23. #define BOOST_NO_SFINAE
  24. #define BOOST_NO_USING_TEMPLATE
  25. #define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
  26. #endif
  27. //
  28. // has macros:
  29. #if (__DMC__ >= 0x840)
  30. #define BOOST_HAS_DIRENT_H
  31. #define BOOST_HAS_STDINT_H
  32. #define BOOST_HAS_WINTHREADS
  33. #endif
  34. #if (__DMC__ >= 0x847)
  35. #define BOOST_HAS_EXPM1
  36. #define BOOST_HAS_LOG1P
  37. #endif
  38. //
  39. // Is this really the best way to detect whether the std lib is in namespace std?
  40. //
  41. #include <cstddef>
  42. #if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
  43. # define BOOST_NO_STDC_NAMESPACE
  44. #endif
  45. // check for exception handling support:
  46. #ifndef _CPPUNWIND
  47. # define BOOST_NO_EXCEPTIONS
  48. #endif
  49. //
  50. // C++0x features
  51. //
  52. #define BOOST_NO_AUTO_DECLARATIONS
  53. #define BOOST_NO_AUTO_MULTIDECLARATIONS
  54. #define BOOST_NO_CHAR16_T
  55. #define BOOST_NO_CHAR32_T
  56. #define BOOST_NO_CONCEPTS
  57. #define BOOST_NO_CONSTEXPR
  58. #define BOOST_NO_DECLTYPE
  59. #define BOOST_NO_DEFAULTED_FUNCTIONS
  60. #define BOOST_NO_DELETED_FUNCTIONS
  61. #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
  62. #define BOOST_NO_EXTERN_TEMPLATE
  63. #define BOOST_NO_INITIALIZER_LISTS
  64. #define BOOST_NO_LAMBDAS
  65. #define BOOST_NO_NULLPTR
  66. #define BOOST_NO_RAW_LITERALS
  67. #define BOOST_NO_RVALUE_REFERENCES
  68. #define BOOST_NO_SCOPED_ENUMS
  69. #define BOOST_NO_STATIC_ASSERT
  70. #define BOOST_NO_TEMPLATE_ALIASES
  71. #define BOOST_NO_UNICODE_LITERALS
  72. #define BOOST_NO_VARIADIC_TEMPLATES
  73. #if __DMC__ < 0x800
  74. #error "Compiler not supported or configured - please reconfigure"
  75. #endif
  76. //
  77. // last known and checked version is ...:
  78. #if (__DMC__ > 0x848)
  79. # if defined(BOOST_ASSERT_CONFIG)
  80. # error "Unknown compiler version - please run the configure tests and report the results"
  81. # endif
  82. #endif