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

MovableRefUtil_Decay<t_TYPE>

forward declaration

Type Aliases

Name

Description

type

This typedef is an alias to the decayed form of t_TYPE.

Created with MrDocs