common_edg.hpp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // (C) Copyright John Maddock 2001 - 2002.
  2. // (C) Copyright Jens Maurer 2001.
  3. // (C) Copyright David Abrahams 2002.
  4. // (C) Copyright Aleksey Gurtovoy 2002.
  5. // (C) Copyright Markus Schoepflin 2005.
  6. // Use, modification and distribution are subject to the
  7. // Boost Software License, Version 1.0. (See accompanying file
  8. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  9. // See http://www.boost.org for most recent version.
  10. //
  11. // Options common to all edg based compilers.
  12. //
  13. // This is included from within the individual compiler mini-configs.
  14. #ifndef __EDG_VERSION__
  15. # error This file requires that __EDG_VERSION__ be defined.
  16. #endif
  17. #if (__EDG_VERSION__ <= 238)
  18. # define BOOST_NO_INTEGRAL_INT64_T
  19. # define BOOST_NO_SFINAE
  20. #endif
  21. #if (__EDG_VERSION__ <= 240)
  22. # define BOOST_NO_VOID_RETURNS
  23. #endif
  24. #if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
  25. # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
  26. #endif
  27. #if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
  28. # define BOOST_NO_TEMPLATE_TEMPLATES
  29. #endif
  30. #if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
  31. # define BOOST_NO_IS_ABSTRACT
  32. #endif
  33. #if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
  34. # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
  35. #endif
  36. // See also kai.hpp which checks a Kai-specific symbol for EH
  37. # if !defined(__KCC) && !defined(__EXCEPTIONS)
  38. # define BOOST_NO_EXCEPTIONS
  39. # endif
  40. # if !defined(__NO_LONG_LONG)
  41. # define BOOST_HAS_LONG_LONG
  42. # else
  43. # define BOOST_NO_LONG_LONG
  44. # endif
  45. //
  46. // C++0x features
  47. //
  48. // See above for BOOST_NO_LONG_LONG
  49. //
  50. #if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG)
  51. // No support for initializer lists
  52. # define BOOST_NO_INITIALIZER_LISTS
  53. #endif
  54. #define BOOST_NO_AUTO_DECLARATIONS
  55. #define BOOST_NO_AUTO_MULTIDECLARATIONS
  56. #define BOOST_NO_CHAR16_T
  57. #define BOOST_NO_CHAR32_T
  58. #define BOOST_NO_CONCEPTS
  59. #define BOOST_NO_CONSTEXPR
  60. #define BOOST_NO_DECLTYPE
  61. #define BOOST_NO_DEFAULTED_FUNCTIONS
  62. #define BOOST_NO_DELETED_FUNCTIONS
  63. #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
  64. #define BOOST_NO_EXTERN_TEMPLATE
  65. #define BOOST_NO_LAMBDAS
  66. #define BOOST_NO_NULLPTR
  67. #define BOOST_NO_RAW_LITERALS
  68. #define BOOST_NO_RVALUE_REFERENCES
  69. #define BOOST_NO_SCOPED_ENUMS
  70. #define BOOST_NO_STATIC_ASSERT
  71. #define BOOST_NO_TEMPLATE_ALIASES
  72. #define BOOST_NO_UNICODE_LITERALS
  73. #define BOOST_NO_VARIADIC_TEMPLATES
  74. #ifdef c_plusplus
  75. // EDG has "long long" in non-strict mode
  76. // However, some libraries have insufficient "long long" support
  77. // #define BOOST_HAS_LONG_LONG
  78. #endif