Quick Links: |
#include <bslmf_movableref.h>
This struct
template provides a metafunction that defines a nested type
typedef that applies lvalue-to-rvalue, array-to-pointer, and function-to-pointer conversions that occur when an lvalue of type t_TYPE
is used as an rvalue, and also removes const
, volatile
, and reference qualifiers from class types in order to model by-value argument passing. For the purpose of this type trait, MovableRef<T>
is considered a (movable) reference-qualified T
.
Formally, let U
be MovableRefUtil::RemoveReference<t_TYPE>type
. If bsl::is_array<U>value
is true, the member typedef type
is bsl::remove_extent<U>type *
. If bsl::is_function<U>value
is true, the member typedef type
is bsl::add_pointer<U>type
. Otherwise, the member typedef type
is bsl::remove_cv<U>type
.
See Component bslmf_movableref