msl.hpp 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // (C) Copyright John Maddock 2001.
  2. // (C) Copyright Darin Adler 2001.
  3. // Use, modification and distribution are subject to the
  4. // Boost Software License, Version 1.0. (See accompanying file
  5. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. // See http://www.boost.org for most recent version.
  7. // Metrowerks standard library:
  8. #ifndef __MSL_CPP__
  9. # include <boost/config/no_tr1/utility.hpp>
  10. # ifndef __MSL_CPP__
  11. # error This is not the MSL standard library!
  12. # endif
  13. #endif
  14. #if __MSL_CPP__ >= 0x6000 // Pro 6
  15. # define BOOST_HAS_HASH
  16. # define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
  17. #endif
  18. #define BOOST_HAS_SLIST
  19. #if __MSL_CPP__ < 0x6209
  20. # define BOOST_NO_STD_MESSAGES
  21. #endif
  22. // check C lib version for <stdint.h>
  23. #include <cstddef>
  24. #if defined(__MSL__) && (__MSL__ >= 0x5000)
  25. # define BOOST_HAS_STDINT_H
  26. # if !defined(__PALMOS_TRAPS__)
  27. # define BOOST_HAS_UNISTD_H
  28. # endif
  29. // boilerplate code:
  30. # include <boost/config/detail/posix_features.hpp>
  31. #endif
  32. #if defined(_MWMT) || _MSL_THREADSAFE
  33. # define BOOST_HAS_THREADS
  34. #endif
  35. #ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
  36. # define BOOST_NO_STD_USE_FACET
  37. # define BOOST_HAS_TWO_ARG_USE_FACET
  38. #endif
  39. // C++0x headers not yet implemented
  40. //
  41. # define BOOST_NO_CXX11_HDR_ARRAY
  42. # define BOOST_NO_CXX11_HDR_CHRONO
  43. # define BOOST_NO_CXX11_HDR_CODECVT
  44. # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
  45. # define BOOST_NO_CXX11_HDR_FORWARD_LIST
  46. # define BOOST_NO_CXX11_HDR_FUTURE
  47. # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  48. # define BOOST_NO_CXX11_HDR_MUTEX
  49. # define BOOST_NO_CXX11_HDR_RANDOM
  50. # define BOOST_NO_CXX11_HDR_RATIO
  51. # define BOOST_NO_CXX11_HDR_REGEX
  52. # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
  53. # define BOOST_NO_CXX11_HDR_THREAD
  54. # define BOOST_NO_CXX11_HDR_TUPLE
  55. # define BOOST_NO_CXX11_HDR_TYPE_TRAITS
  56. # define BOOST_NO_CXX11_HDR_TYPEINDEX
  57. # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
  58. # define BOOST_NO_CXX11_HDR_UNORDERED_SET
  59. # define BOOST_NO_CXX11_NUMERIC_LIMITS
  60. # define BOOST_NO_CXX11_ALLOCATOR
  61. # define BOOST_NO_CXX11_POINTER_TRAITS
  62. # define BOOST_NO_CXX11_ATOMIC_SMART_PTR
  63. # define BOOST_NO_CXX11_SMART_PTR
  64. # define BOOST_NO_CXX11_HDR_FUNCTIONAL
  65. # define BOOST_NO_CXX11_HDR_ATOMIC
  66. # define BOOST_NO_CXX11_STD_ALIGN
  67. # define BOOST_NO_CXX11_ADDRESSOF
  68. #if defined(__has_include)
  69. #if !__has_include(<shared_mutex>)
  70. # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
  71. #elif __cplusplus < 201402
  72. # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
  73. #endif
  74. #else
  75. # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
  76. #endif
  77. // C++14 features
  78. # define BOOST_NO_CXX14_STD_EXCHANGE
  79. // C++17 features
  80. # define BOOST_NO_CXX17_STD_APPLY
  81. # define BOOST_NO_CXX17_STD_INVOKE
  82. # define BOOST_NO_CXX17_ITERATOR_TRAITS
  83. #define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)