File: integer_traits_include_test.cpp

package info (click to toggle)
boost1.90 1.90.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 593,120 kB
  • sloc: cpp: 4,190,908; xml: 196,648; python: 34,618; ansic: 23,145; asm: 5,468; sh: 3,774; makefile: 1,161; perl: 1,020; sql: 728; ruby: 676; yacc: 478; java: 77; lisp: 24; csh: 6
file content (37 lines) | stat: -rw-r--r-- 956 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//  Copyright John Maddock 2009.  
//  Distributed under the Boost
//  Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at https://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
}