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.

Header:#include<boost/type_traits/add_rvalue_reference.hpp>
or #include<boost/type_traits.hpp>

Table 1.15. Examples

Expression

Result Type

add_rvalue_reference<int>::type

int&&

add_rvalue_reference<intconst&>::type

intconst&

add_rvalue_reference<int*>::type

int*&&

add_rvalue_reference<int*&>::type

int*&

add_rvalue_reference<int&&>::type

int&&

add_rvalue_reference<void>::type

void

Compiler Compatibility: In the absence of
rvalue-reference support this trait has no effect.