| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | //  Boost integer_fwd.hpp header file  ---------------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-08-15 10:13:49 +00:00
										 |  |  | //  (C) Copyright Dave Abrahams and Daryle Walker 2001. Distributed under the Boost
 | 
					
						
							| 
									
										
										
										
											2004-08-11 10:59:33 +00:00
										 |  |  | //  Software License, Version 1.0. (See accompanying file
 | 
					
						
							|  |  |  | //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-27 16:51:53 +00:00
										 |  |  | //  See http://www.boost.org/libs/integer for documentation.
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifndef BOOST_INTEGER_FWD_HPP
 | 
					
						
							|  |  |  | #define BOOST_INTEGER_FWD_HPP
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-11 18:57:24 +00:00
										 |  |  | #include <climits>  // for UCHAR_MAX, etc.
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | #include <cstddef>  // for std::size_t
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-11 18:57:24 +00:00
										 |  |  | #include <boost/config.hpp>  // for BOOST_NO_INTRINSIC_WCHAR_T
 | 
					
						
							|  |  |  | #include <boost/limits.hpp>  // for std::numeric_limits
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | #include <boost/cstdint.hpp>  // For intmax_t
 | 
					
						
							| 
									
										
										
										
											2008-07-24 11:43:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace boost | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | #ifdef BOOST_NO_INTEGRAL_INT64_T
 | 
					
						
							|  |  |  |      typedef unsigned long static_log2_argument_type; | 
					
						
							|  |  |  |      typedef          int  static_log2_result_type; | 
					
						
							|  |  |  |      typedef long          static_min_max_signed_type; | 
					
						
							|  |  |  |      typedef unsigned long static_min_max_unsigned_type; | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  |      typedef boost::uintmax_t static_min_max_unsigned_type; | 
					
						
							|  |  |  |      typedef boost::intmax_t  static_min_max_signed_type; | 
					
						
							|  |  |  |      typedef boost::uintmax_t static_log2_argument_type; | 
					
						
							|  |  |  |      typedef int              static_log2_result_type; | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | //  From <boost/cstdint.hpp>  ------------------------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Only has typedefs or using statements, with #conditionals
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //  From <boost/integer_traits.hpp>  -----------------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template < class T > | 
					
						
							|  |  |  |     class integer_traits; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< bool >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< char >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< signed char >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< unsigned char >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef BOOST_NO_INTRINSIC_WCHAR_T
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< wchar_t >; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< short >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< unsigned short >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< int >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< unsigned int >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< long >; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     class integer_traits< unsigned long >; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 11:15:54 +00:00
										 |  |  | #if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG)
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | template <  > | 
					
						
							| 
									
										
										
										
											2010-02-04 11:15:54 +00:00
										 |  |  | class integer_traits<  ::boost::long_long_type>; | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							| 
									
										
										
										
											2010-02-04 11:15:54 +00:00
										 |  |  | class integer_traits<  ::boost::ulong_long_type >; | 
					
						
							|  |  |  | #elif !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_MS_INT64)
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  | class integer_traits<__int64>; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  | class integer_traits<unsigned __int64>; | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //  From <boost/integer.hpp>  ------------------------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template < typename LeastInt > | 
					
						
							|  |  |  |     struct int_fast_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template< int Bits > | 
					
						
							|  |  |  |     struct int_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template< int Bits > | 
					
						
							|  |  |  |     struct uint_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:51:33 +00:00
										 |  |  | #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
 | 
					
						
							|  |  |  |     template< boost::long_long_type MaxValue >   // maximum value to require support
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  |   template< long MaxValue >   // maximum value to require support
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct int_max_value_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:51:33 +00:00
										 |  |  | #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
 | 
					
						
							|  |  |  |   template< boost::long_long_type MinValue >   // minimum value to require support
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  |   template< long MinValue >   // minimum value to require support
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct int_min_value_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:51:33 +00:00
										 |  |  | #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
 | 
					
						
							|  |  |  |   template< boost::ulong_long_type MaxValue >   // maximum value to require support
 | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2009-11-30 13:50:05 +00:00
										 |  |  |   template< unsigned long MaxValue >   // maximum value to require support
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:51:33 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct uint_value_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //  From <boost/integer/integer_mask.hpp>  -----------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-29 19:33:20 +00:00
										 |  |  | template < std::size_t Bit > | 
					
						
							| 
									
										
										
										
											2009-11-11 18:57:24 +00:00
										 |  |  |     struct high_bit_mask_t; | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-29 19:33:20 +00:00
										 |  |  | template < std::size_t Bits > | 
					
						
							| 
									
										
										
										
											2009-11-11 18:57:24 +00:00
										 |  |  |     struct low_bits_mask_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <  > | 
					
						
							|  |  |  |     struct low_bits_mask_t< ::std::numeric_limits<unsigned char>::digits >; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | //  From <boost/integer/static_log2.hpp>  ------------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | template <static_log2_argument_type Value > | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct static_log2; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | template <> struct static_log2<0u>; | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //  From <boost/integer/static_min_max.hpp>  ---------------------------------//
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | template <static_min_max_signed_type Value1, static_min_max_signed_type Value2> | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct static_signed_min; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | template <static_min_max_signed_type Value1, static_min_max_signed_type Value2> | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct static_signed_max; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2> | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct static_unsigned_min; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:38:09 +00:00
										 |  |  | template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2> | 
					
						
							| 
									
										
										
										
											2001-12-03 23:55:35 +00:00
										 |  |  |     struct static_unsigned_max; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }  // namespace boost
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif  // BOOST_INTEGER_FWD_HPP
 |