...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
template <class T>
struct add_rvalue_reference
{
typedef see-below
type;
};
type: If T
names an object or function type then the member typedef type shall name
T&&
;
otherwise, type shall name T
.
[Note: This rule reflects the semantics of reference collapsing.
For example, when a type T
names a type U&, the type add_rvalue_reference<T>::type
is not an rvalue reference. -end note].
C++ Standard Reference: 20.7.6.2.
Compiler Compatibility: If the compiler
does not support partial specialization of class-templates and rvalue references
then this template will compile, but the member type
will always be the same as type T
.
Header: #include
<boost/type_traits/add_rvalue_reference.hpp>
or #include <boost/type_traits.hpp>
Table 1.10. Examples
Expression |
Result Type |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|