[/ 
  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_volatile is_volatile]
   template <class T>
   struct is_volatile : public __tof {};
  
__inherit If T is a (top level) volatile-qualified type then inherits from __true_type, 
otherwise inherits from __false_type.

__std_ref 3.9.3.

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

__examples

[:`is_volatile<volatile int>` inherits from `__true_type`.]

[:`is_volatile<const volatile int>::type` is the type `__true_type`.]

[:`is_volatile<int* volatile>::value` is an integral constant 
expression that evaluates to /true/.]

[:`is_volatile<int volatile*>::value` is an integral constant 
expression that evaluates to /false/: the volatile qualifier is not
at the top level in this case.]

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

[endsect]

