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.
Synopsis
Declared in <bslmf_movableref.h>
template<class t_TYPE>
struct Decay
: MovableRefUtil_Decay<t_TYPE>
Description
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.
Base Classes
Name |
Description |
forward declaration |