hp_acc.hpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. // (C) Copyright John Maddock 2001 - 2003.
  2. // (C) Copyright Jens Maurer 2001 - 2003.
  3. // (C) Copyright Aleksey Gurtovoy 2002.
  4. // (C) Copyright David Abrahams 2002 - 2003.
  5. // (C) Copyright Toon Knapen 2003.
  6. // (C) Copyright Boris Gubenko 2006 - 2007.
  7. // Use, modification and distribution are subject to the
  8. // Boost Software License, Version 1.0. (See accompanying file
  9. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  10. // See http://www.boost.org for most recent version.
  11. // HP aCC C++ compiler setup:
  12. #if defined(__EDG__)
  13. #include <boost/config/compiler/common_edg.hpp>
  14. #endif
  15. #if (__HP_aCC <= 33100)
  16. # define BOOST_NO_INTEGRAL_INT64_T
  17. # define BOOST_NO_OPERATORS_IN_NAMESPACE
  18. # if !defined(_NAMESPACE_STD)
  19. # define BOOST_NO_STD_LOCALE
  20. # define BOOST_NO_STRINGSTREAM
  21. # endif
  22. #endif
  23. #if (__HP_aCC <= 33300)
  24. // member templates are sufficiently broken that we disable them for now
  25. # define BOOST_NO_MEMBER_TEMPLATES
  26. # define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
  27. # define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
  28. #endif
  29. #if (__HP_aCC <= 38000)
  30. # define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  31. #endif
  32. #if (__HP_aCC > 50000) && (__HP_aCC < 60000)
  33. # define BOOST_NO_UNREACHABLE_RETURN_DETECTION
  34. # define BOOST_NO_TEMPLATE_TEMPLATES
  35. # define BOOST_NO_SWPRINTF
  36. # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
  37. # define BOOST_NO_IS_ABSTRACT
  38. # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
  39. #endif
  40. // optional features rather than defects:
  41. #if (__HP_aCC >= 33900)
  42. # define BOOST_HAS_LONG_LONG
  43. # define BOOST_HAS_PARTIAL_STD_ALLOCATOR
  44. #endif
  45. #if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
  46. # define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
  47. #endif
  48. // This macro should not be defined when compiling in strict ansi
  49. // mode, but, currently, we don't have the ability to determine
  50. // what standard mode we are compiling with. Some future version
  51. // of aCC6 compiler will provide predefined macros reflecting the
  52. // compilation options, including the standard mode.
  53. #if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
  54. # define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  55. #endif
  56. #define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
  57. //
  58. // versions check:
  59. // we don't support HP aCC prior to version 33000:
  60. #if __HP_aCC < 33000
  61. # error "Compiler not supported or configured - please reconfigure"
  62. #endif
  63. //
  64. // Extended checks for supporting aCC on PA-RISC
  65. #if __HP_aCC > 30000 && __HP_aCC < 50000
  66. # if __HP_aCC < 38000
  67. // versions prior to version A.03.80 not supported
  68. # error "Compiler version not supported - version A.03.80 or higher is required"
  69. # elif !defined(__hpxstd98)
  70. // must compile using the option +hpxstd98 with version A.03.80 and above
  71. # error "Compiler option '+hpxstd98' is required for proper support"
  72. # endif //PA-RISC
  73. #endif
  74. //
  75. // C++0x features
  76. //
  77. // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
  78. //
  79. #if !defined(__EDG__)
  80. #define BOOST_NO_CXX11_AUTO_DECLARATIONS
  81. #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
  82. #define BOOST_NO_CXX11_CHAR16_T
  83. #define BOOST_NO_CXX11_CHAR32_T
  84. #define BOOST_NO_CXX11_CONSTEXPR
  85. #define BOOST_NO_CXX11_DECLTYPE
  86. #define BOOST_NO_CXX11_DECLTYPE_N3276
  87. #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
  88. #define BOOST_NO_CXX11_DELETED_FUNCTIONS
  89. #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
  90. #define BOOST_NO_CXX11_EXTERN_TEMPLATE
  91. #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
  92. #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  93. #define BOOST_NO_CXX11_LAMBDAS
  94. #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
  95. #define BOOST_NO_CXX11_NOEXCEPT
  96. #define BOOST_NO_CXX11_NULLPTR
  97. #define BOOST_NO_CXX11_RANGE_BASED_FOR
  98. #define BOOST_NO_CXX11_RAW_LITERALS
  99. #define BOOST_NO_CXX11_RVALUE_REFERENCES
  100. #define BOOST_NO_CXX11_SCOPED_ENUMS
  101. #define BOOST_NO_SFINAE_EXPR
  102. #define BOOST_NO_CXX11_SFINAE_EXPR
  103. #define BOOST_NO_CXX11_STATIC_ASSERT
  104. #define BOOST_NO_CXX11_TEMPLATE_ALIASES
  105. #define BOOST_NO_CXX11_UNICODE_LITERALS
  106. #define BOOST_NO_CXX11_VARIADIC_TEMPLATES
  107. #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
  108. #define BOOST_NO_CXX11_ALIGNAS
  109. #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
  110. #define BOOST_NO_CXX11_INLINE_NAMESPACES
  111. #define BOOST_NO_CXX11_REF_QUALIFIERS
  112. #define BOOST_NO_CXX11_THREAD_LOCAL
  113. /*
  114. See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
  115. https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
  116. */
  117. #if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
  118. #define BOOST_NO_CXX11_VARIADIC_MACROS
  119. #endif
  120. #endif
  121. //
  122. // last known and checked version for HP-UX/ia64 is 61300
  123. // last known and checked version for PA-RISC is 38000
  124. #if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
  125. # if defined(BOOST_ASSERT_CONFIG)
  126. # error "boost: Unknown compiler version - please run the configure tests and report the results"
  127. # endif
  128. #endif