integer_fwd.hpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. // Boost integer_fwd.hpp header file ---------------------------------------//
  2. // (C) Copyright Dave Abrahams and Daryle Walker 2001. Distributed under the Boost
  3. // Software License, Version 1.0. (See accompanying file
  4. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. // See http://www.boost.org/libs/integer for documentation.
  6. #ifndef BOOST_INTEGER_FWD_HPP
  7. #define BOOST_INTEGER_FWD_HPP
  8. #include <climits> // for UCHAR_MAX, etc.
  9. #include <cstddef> // for std::size_t
  10. #include <boost/config.hpp> // for BOOST_NO_INTRINSIC_WCHAR_T
  11. #include <boost/limits.hpp> // for std::numeric_limits
  12. namespace boost
  13. {
  14. // From <boost/cstdint.hpp> ------------------------------------------------//
  15. // Only has typedefs or using statements, with #conditionals
  16. // From <boost/integer_traits.hpp> -----------------------------------------//
  17. template < class T >
  18. class integer_traits;
  19. template < >
  20. class integer_traits< bool >;
  21. template < >
  22. class integer_traits< char >;
  23. template < >
  24. class integer_traits< signed char >;
  25. template < >
  26. class integer_traits< unsigned char >;
  27. #ifndef BOOST_NO_INTRINSIC_WCHAR_T
  28. template < >
  29. class integer_traits< wchar_t >;
  30. #endif
  31. template < >
  32. class integer_traits< short >;
  33. template < >
  34. class integer_traits< unsigned short >;
  35. template < >
  36. class integer_traits< int >;
  37. template < >
  38. class integer_traits< unsigned int >;
  39. template < >
  40. class integer_traits< long >;
  41. template < >
  42. class integer_traits< unsigned long >;
  43. #ifdef ULLONG_MAX
  44. template < >
  45. class integer_traits< ::boost::long_long_type>;
  46. template < >
  47. class integer_traits< ::boost::ulong_long_type >;
  48. #endif
  49. // From <boost/integer.hpp> ------------------------------------------------//
  50. template < typename LeastInt >
  51. struct int_fast_t;
  52. template< int Bits >
  53. struct int_t;
  54. template< int Bits >
  55. struct uint_t;
  56. template< long MaxValue >
  57. struct int_max_value_t;
  58. template< long MinValue >
  59. struct int_min_value_t;
  60. template< unsigned long Value >
  61. struct uint_value_t;
  62. // From <boost/integer/integer_mask.hpp> -----------------------------------//
  63. template < std::size_t Bit >
  64. struct high_bit_mask_t;
  65. template < std::size_t Bits >
  66. struct low_bits_mask_t;
  67. template < >
  68. struct low_bits_mask_t< ::std::numeric_limits<unsigned char>::digits >;
  69. #if USHRT_MAX > UCHAR_MAX
  70. template < >
  71. struct low_bits_mask_t< ::std::numeric_limits<unsigned short>::digits >;
  72. #endif
  73. #if UINT_MAX > USHRT_MAX
  74. template < >
  75. struct low_bits_mask_t< ::std::numeric_limits<unsigned int>::digits >;
  76. #endif
  77. #if ULONG_MAX > UINT_MAX
  78. template < >
  79. struct low_bits_mask_t< ::std::numeric_limits<unsigned long>::digits >;
  80. #endif
  81. // From <boost/integer/static_log2.hpp> ------------------------------------//
  82. template < unsigned long Value >
  83. struct static_log2;
  84. template < >
  85. struct static_log2< 0ul >;
  86. // From <boost/integer/static_min_max.hpp> ---------------------------------//
  87. template < long Value1, long Value2 >
  88. struct static_signed_min;
  89. template < long Value1, long Value2 >
  90. struct static_signed_max;
  91. template < unsigned long Value1, unsigned long Value2 >
  92. struct static_unsigned_min;
  93. template < unsigned long Value1, unsigned long Value2 >
  94. struct static_unsigned_max;
  95. } // namespace boost
  96. #endif // BOOST_INTEGER_FWD_HPP