register_fundamental.hpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright (C) 2004 Arkadiy Vertleyb
  2. // Copyright (C) 2004 Peder Holt
  3. // Use, modification and distribution is subject to the Boost Software
  4. // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
  5. #ifndef BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
  6. #define BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
  7. #include <boost/typeof/typeof.hpp>
  8. #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
  9. BOOST_TYPEOF_REGISTER_TYPE(unsigned char)
  10. BOOST_TYPEOF_REGISTER_TYPE(unsigned short)
  11. BOOST_TYPEOF_REGISTER_TYPE(unsigned int)
  12. BOOST_TYPEOF_REGISTER_TYPE(unsigned long)
  13. BOOST_TYPEOF_REGISTER_TYPE(signed char)
  14. BOOST_TYPEOF_REGISTER_TYPE(signed short)
  15. BOOST_TYPEOF_REGISTER_TYPE(signed int)
  16. BOOST_TYPEOF_REGISTER_TYPE(signed long)
  17. BOOST_TYPEOF_REGISTER_TYPE(bool)
  18. BOOST_TYPEOF_REGISTER_TYPE(char)
  19. BOOST_TYPEOF_REGISTER_TYPE(float)
  20. BOOST_TYPEOF_REGISTER_TYPE(double)
  21. BOOST_TYPEOF_REGISTER_TYPE(long double)
  22. #ifndef BOOST_NO_INTRINSIC_WCHAR_T
  23. // If the following line fails to compile and you're using the Intel
  24. // compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php,
  25. // and define BOOST_NO_INTRINSIC_WCHAR_T on the command line.
  26. BOOST_TYPEOF_REGISTER_TYPE(wchar_t)
  27. #endif
  28. #if (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
  29. || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200))
  30. BOOST_TYPEOF_REGISTER_TYPE(unsigned __int8)
  31. BOOST_TYPEOF_REGISTER_TYPE(__int8)
  32. BOOST_TYPEOF_REGISTER_TYPE(unsigned __int16)
  33. BOOST_TYPEOF_REGISTER_TYPE(__int16)
  34. BOOST_TYPEOF_REGISTER_TYPE(unsigned __int32)
  35. BOOST_TYPEOF_REGISTER_TYPE(__int32)
  36. #ifdef __BORLANDC__
  37. BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
  38. BOOST_TYPEOF_REGISTER_TYPE(__int64)
  39. #endif
  40. #endif
  41. # if defined(BOOST_HAS_LONG_LONG)
  42. BOOST_TYPEOF_REGISTER_TYPE(::boost::ulong_long_type)
  43. BOOST_TYPEOF_REGISTER_TYPE(::boost::long_long_type)
  44. #elif defined(BOOST_HAS_MS_INT64)
  45. BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
  46. BOOST_TYPEOF_REGISTER_TYPE(__int64)
  47. #endif
  48. BOOST_TYPEOF_REGISTER_TYPE(void)
  49. #endif//BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED