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