[/ 
  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:integral_constant integral_constant]
   template <class T, T val>
   struct integral_constant
   {
      typedef integral_constant<T, val>  type;
      typedef T                          value_type;
      static const T value = val;
      constexpr operator T()const;
   };
   
   typedef integral_constant<bool, true>  true_type;
   typedef integral_constant<bool, false> false_type;

Class template `integral_constant` is the common base class for all the value-based
type traits.  The two typedef's `true_type` and `false_type` are provided for 
convenience: most of the value traits are Boolean properties and so will inherit from
one of these.

[endsect]

