[/ 
  Copyright 2007 John Maddock.
  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).
]

[section:is_integral is_integral]
   template <class T>
   struct is_integral : public __tof {};
  
__inherit If T is a (possibly cv-qualified) integral type then inherits from __true_type, 
otherwise inherits from __false_type.

__std_ref 3.9.1p7.

__header ` #include <boost/type_traits/is_integral.hpp>` or ` #include <boost/type_traits.hpp>`

__examples

[:`is_integral<int>` inherits from `__true_type`.]

[:`is_integral<const char>::type` is the type `__true_type`.]

[:`is_integral<long>::value` is an integral constant 
expression that evaluates to /true/.]

[:`is_integral<T>::value_type` is the type `bool`.]

[endsect]

