38 lines
955 B
C++
38 lines
955 B
C++
// Copyright John Maddock 2009.
|
|
// Distributed under the Boost
|
|
// Software License, Version 1.0. (See accompanying file
|
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
#include <boost/integer_traits.hpp> // must be the only #include!
|
|
|
|
template <class T>
|
|
void check_numeric_limits_derived(const std::numeric_limits<T>&){}
|
|
|
|
template <class T>
|
|
void check()
|
|
{
|
|
typedef boost::integer_traits<T> traits;
|
|
check_numeric_limits_derived(traits());
|
|
bool b = traits::is_integral;
|
|
(void)b;
|
|
T v = traits::const_min + traits::const_max;
|
|
(void)v;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
check<signed char>();
|
|
check<unsigned char>();
|
|
check<char>();
|
|
check<short>();
|
|
check<unsigned short>();
|
|
check<int>();
|
|
check<unsigned int>();
|
|
check<signed long>();
|
|
check<unsigned long>();
|
|
#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
|
|
check<boost::long_long_type>();
|
|
check<boost::ulong_long_type>();
|
|
#endif
|
|
}
|