UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ElementType.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "HAL/Platform.h"
6#include <initializer_list>
7#include <type_traits>
8
10{
11
12template <typename T, typename = void>
13struct TImpl
14{
15};
16
17template <typename T>
18struct TImpl<T, std::void_t<typename T::ElementType>>
19{
20 using Type = typename T::ElementType;
21};
22
23} // UE::Core::Private::ElementType
24
28template <typename T>
32
33template <typename T> struct TElementType< T& > : TElementType<T> {};
34template <typename T> struct TElementType< T&&> : TElementType<T> {};
35template <typename T> struct TElementType<const T> : TElementType<T> {};
36template <typename T> struct TElementType< volatile T> : TElementType<T> {};
37template <typename T> struct TElementType<const volatile T> : TElementType<T> {};
38
42template <typename T, size_t N> struct TElementType< T[N]> { using Type = T; };
43template <typename T, size_t N> struct TElementType<const T[N]> { using Type = T; };
44template <typename T, size_t N> struct TElementType< volatile T[N]> { using Type = T; };
45template <typename T, size_t N> struct TElementType<const volatile T[N]> { using Type = T; };
46
50template <typename T>
52{
53 using Type = std::remove_cv_t<T>;
54};
55
56template <typename T>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename TElementType< T >::Type TElementType_T
Definition ElementType.h:57
Definition ElementType.h:10
T Type
Definition ElementType.h:42
T Type
Definition ElementType.h:43
T Type
Definition ElementType.h:45
std::remove_cv_t< T > Type
Definition ElementType.h:53
T Type
Definition ElementType.h:44
Definition ElementType.h:30
Definition ElementType.h:14