1 // Boost integer_fwd.hpp header file ---------------------------------------//
3 // (C) Copyright boost.org 2001. Permission to copy, use, modify, sell
4 // and distribute this software is granted provided this copyright
5 // notice appears in all copies. This software is provided "as is" without
6 // express or implied warranty, and with no claim as to its suitability for
9 // See http://www.boost.org for most recent version including documentation.
11 #ifndef BOOST_INTEGER_FWD_HPP
12 #define BOOST_INTEGER_FWD_HPP
14 #include <climits> // for UCHAR_MAX, etc.
15 #include <cstddef> // for std::size_t
17 #include <boost/config.hpp> // for BOOST_NO_INTRINSIC_WCHAR_T
18 #include <boost/limits.hpp> // for std::numeric_limits
25 // From <boost/cstdint.hpp> ------------------------------------------------//
27 // Only has typedefs or using statements, with #conditionals
30 // From <boost/integer_traits.hpp> -----------------------------------------//
36 class integer_traits< bool >;
39 class integer_traits< char >;
42 class integer_traits< signed char >;
45 class integer_traits< unsigned char >;
47 #ifndef BOOST_NO_INTRINSIC_WCHAR_T
49 class integer_traits< wchar_t >;
53 class integer_traits< short >;
56 class integer_traits< unsigned short >;
59 class integer_traits< int >;
62 class integer_traits< unsigned int >;
65 class integer_traits< long >;
68 class integer_traits< unsigned long >;
72 class integer_traits< long long >;
75 class integer_traits< unsigned long long >;
79 // From <boost/integer.hpp> ------------------------------------------------//
81 template < typename LeastInt >
90 template< long MaxValue >
91 struct int_max_value_t;
93 template< long MinValue >
94 struct int_min_value_t;
96 template< unsigned long Value >
100 // From <boost/integer/integer_mask.hpp> -----------------------------------//
102 template < std::size_t Bit >
103 struct high_bit_mask_t;
105 template < std::size_t Bits >
106 struct low_bits_mask_t;
109 struct low_bits_mask_t< ::std::numeric_limits<unsigned char>::digits >;
111 #if USHRT_MAX > UCHAR_MAX
113 struct low_bits_mask_t< ::std::numeric_limits<unsigned short>::digits >;
116 #if UINT_MAX > USHRT_MAX
118 struct low_bits_mask_t< ::std::numeric_limits<unsigned int>::digits >;
121 #if ULONG_MAX > UINT_MAX
123 struct low_bits_mask_t< ::std::numeric_limits<unsigned long>::digits >;
127 // From <boost/integer/static_log2.hpp> ------------------------------------//
129 template < unsigned long Value >
133 struct static_log2< 0ul >;
136 // From <boost/integer/static_min_max.hpp> ---------------------------------//
138 template < long Value1, long Value2 >
139 struct static_signed_min;
141 template < long Value1, long Value2 >
142 struct static_signed_max;
144 template < unsigned long Value1, unsigned long Value2 >
145 struct static_unsigned_min;
147 template < unsigned long Value1, unsigned long Value2 >
148 struct static_unsigned_max;
154 #endif // BOOST_INTEGER_FWD_HPP