BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslmf::MovableRefUtil::Decay< t_TYPE > Struct Template Reference

#include <bslmf_movableref.h>

Inheritance diagram for bslmf::MovableRefUtil::Decay< t_TYPE >:
bslmf::MovableRefUtil_Decay< t_TYPE > bsl::decay< MovableRefUtil_RemoveReference< t_TYPE >::type >

Additional Inherited Members

- Public Types inherited from bsl::decay< MovableRefUtil_RemoveReference< t_TYPE >::type >
typedef decay_imp< U, k_ISARRAY, k_ISFUNC >::type type
 

Detailed Description

template<class t_TYPE>
struct bslmf::MovableRefUtil::Decay< t_TYPE >

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.


The documentation for this struct was generated from the following file: