[/ 
  Copyright 2010 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_rvalue_reference is_rvalue_reference]
   template <class T>
   struct is_rvalue_reference : public __tof {};
  
__inherit If T is an rvalue reference type
then inherits from __true_type, 
otherwise inherits from __false_type.

__std_ref 3.9.2 and 8.3.2.

__compat If the compiler does not 
support partial-specialization of class templates, 
then this template may report the wrong result for function types, 
and for types that are both const and volatile qualified.

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

__examples

[:`is_rvalue_reference<int&&>` inherits from `__true_type`.]

[:`is_rvalue_reference<int const&&>::type` is the type `__true_type`.]

[:`is_rvalue_reference<int const&>::type` is the type `__false_type`.]

[:`is_rvalue_reference<int (&&)(long)>::value` is an integral constant 
expression that evaluates to /true/ (the argument in this case is
an rvalue reference to a function).]

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

[endsect]

