integer_fwd.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef BOOST_INTEGER_FWD_HPP
00010 #define BOOST_INTEGER_FWD_HPP
00011
00012 #include <climits>
00013 #include <cstddef>
00014
00015 #include <boost/config.hpp>
00016 #include <boost/limits.hpp>
00017
00018
00019 namespace boost
00020 {
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 template < class T >
00031 class integer_traits;
00032
00033 template < >
00034 class integer_traits< bool >;
00035
00036 template < >
00037 class integer_traits< char >;
00038
00039 template < >
00040 class integer_traits< signed char >;
00041
00042 template < >
00043 class integer_traits< unsigned char >;
00044
00045 #ifndef BOOST_NO_INTRINSIC_WCHAR_T
00046 template < >
00047 class integer_traits< wchar_t >;
00048 #endif
00049
00050 template < >
00051 class integer_traits< short >;
00052
00053 template < >
00054 class integer_traits< unsigned short >;
00055
00056 template < >
00057 class integer_traits< int >;
00058
00059 template < >
00060 class integer_traits< unsigned int >;
00061
00062 template < >
00063 class integer_traits< long >;
00064
00065 template < >
00066 class integer_traits< unsigned long >;
00067
00068 #ifdef ULLONG_MAX
00069 template < >
00070 class integer_traits< ::boost::long_long_type>;
00071
00072 template < >
00073 class integer_traits< ::boost::ulong_long_type >;
00074 #endif
00075
00076
00077
00078
00079 template < typename LeastInt >
00080 struct int_fast_t;
00081
00082 template< int Bits >
00083 struct int_t;
00084
00085 template< int Bits >
00086 struct uint_t;
00087
00088 template< long MaxValue >
00089 struct int_max_value_t;
00090
00091 template< long MinValue >
00092 struct int_min_value_t;
00093
00094 template< unsigned long Value >
00095 struct uint_value_t;
00096
00097
00098
00099
00100 template < std::size_t Bit >
00101 struct high_bit_mask_t;
00102
00103 template < std::size_t Bits >
00104 struct low_bits_mask_t;
00105
00106 template < >
00107 struct low_bits_mask_t< ::std::numeric_limits<unsigned char>::digits >;
00108
00109 #if USHRT_MAX > UCHAR_MAX
00110 template < >
00111 struct low_bits_mask_t< ::std::numeric_limits<unsigned short>::digits >;
00112 #endif
00113
00114 #if UINT_MAX > USHRT_MAX
00115 template < >
00116 struct low_bits_mask_t< ::std::numeric_limits<unsigned int>::digits >;
00117 #endif
00118
00119 #if ULONG_MAX > UINT_MAX
00120 template < >
00121 struct low_bits_mask_t< ::std::numeric_limits<unsigned long>::digits >;
00122 #endif
00123
00124
00125
00126
00127 template < unsigned long Value >
00128 struct static_log2;
00129
00130 template < >
00131 struct static_log2< 0ul >;
00132
00133
00134
00135
00136 template < long Value1, long Value2 >
00137 struct static_signed_min;
00138
00139 template < long Value1, long Value2 >
00140 struct static_signed_max;
00141
00142 template < unsigned long Value1, unsigned long Value2 >
00143 struct static_unsigned_min;
00144
00145 template < unsigned long Value1, unsigned long Value2 >
00146 struct static_unsigned_max;
00147
00148
00149 }
00150
00151
00152 #endif