| TMoveSupportTraitsBase
|
Module |
|
Header |
/Engine/Source/Runtime/Core/Public/Templates/UnrealTypeTraits.h |
Include |
#include "Templates/UnrealTypeTraits.h" |
template<typename T>
struct TMoveSupportTraits : public TMoveSupportTraitsBase< T, TCallTraits< T >::ParamType >
This traits class is intended to be used in pairs to allow efficient and correct move-aware overloads for generic types. For example:
template <typename t>=""> void Func(typename TMoveSupportTraits<T>::Copy Obj) { Copy Obj here }
template <typename t>=""> void Func(typename TMoveSupportTraits<T>::Move Obj) { Move from Obj here as if it was passed as T&& }
Structuring things in this way will handle T being a pass-by-value type (e.g. ints, floats, other 'small' types) which should never have a reference overload.